@mappedin/events 6.5.0-beta.0 → 6.7.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/esm/index.d.ts +218 -39
- package/lib/esm/index.js +1 -1
- package/package.json +2 -2
package/lib/esm/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnnotationCollection, AnnotationSymbol, AreaCollection, AreaId, Category as MVFCategory, CategoryId, Connection as MVFConnection, Details, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseCategory as MvfEnterpriseCategory, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocation as MvfEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseLocationInstance, EnterpriseVenue as MVFEnterpriseVenue, EntranceCollection, EntranceFeature, Facade as MVFFacade, Feature, Feature as MVFFeature, FeatureCollection, FloorCollection, FloorProperties as MVFFloor, FloorProperties as MvfFloor, FloorStack as MVFFloorStack, FloorStack as MvfFloorStack, Geometry, Hyperlink as MVFHyperlink, Image as MVFImage, Language, LineStringStyle as TMVFLineStringStyle, Location as MVFLocation, LocationId, LocationLink, LocationSocial, LocationState, MultiPolygon, NavigationFlagDeclarations, NodeCollection, NodeCollection as MVFNodeCollection, NodeId, ObstructionCollection, ObstructionFeature, ObstructionId, ObstructionProperties, OpeningHoursSpecification, OperationHours, ParsedMVF, ParsedMVF as TMVF, ParsedMVFLocalePack, Point, PointStyle as TMVFPointStyle, Polygon, PolygonStyle as TMVFPolygonStyle, SiblingGroup, SpaceCollection, SpaceFeature, SpaceId, SpaceProperties, Style as TMVFStyle, StyleCollection as TMVFStyleCollection, TilesetStyle } from '@mappedin/mvf-v2';
|
|
1
|
+
import { AnnotationCollection, AnnotationSymbol, AreaCollection, AreaId, Category as MVFCategory, CategoryId, Connection as MVFConnection, Details, EnterpriseCategory as MVFEnterpriseCategory, EnterpriseCategory as MvfEnterpriseCategory, EnterpriseCategoryId as MVFEnterpriseCategoryId, EnterpriseLocation as MVFEnterpriseLocation, EnterpriseLocation as MvfEnterpriseLocation, EnterpriseLocationId as MVFEnterpriseLocationId, EnterpriseLocationInstance, EnterpriseVenue as MVFEnterpriseVenue, EnterpriseVenueType, EntranceCollection, EntranceFeature, Facade as MVFFacade, Feature, Feature as MVFFeature, FeatureCollection, FloorCollection, FloorProperties as MVFFloor, FloorProperties as MvfFloor, FloorStack as MVFFloorStack, FloorStack as MvfFloorStack, Geometry, Hyperlink as MVFHyperlink, Image as MVFImage, Language, LineStringStyle as TMVFLineStringStyle, Location as MVFLocation, LocationId, LocationLink, LocationSocial, LocationState, MultiPolygon, NavigationFlagDeclarations, NodeCollection, NodeCollection as MVFNodeCollection, NodeId, ObstructionCollection, ObstructionFeature, ObstructionId, ObstructionProperties, OpeningHoursSpecification, OperationHours, ParsedMVF, ParsedMVF as TMVF, ParsedMVFLocalePack, Point, PointStyle as TMVFPointStyle, Polygon, PolygonStyle as TMVFPolygonStyle, SiblingGroup, SpaceCollection, SpaceFeature, SpaceId, SpaceProperties, Style as TMVFStyle, StyleCollection as TMVFStyleCollection, TilesetStyle } from '@mappedin/mvf-v2';
|
|
2
2
|
import { ParsedMVF } from '@mappedin/mvf-v2/no-validator';
|
|
3
3
|
|
|
4
4
|
declare const VALID_CONTEXTS: readonly [
|
|
@@ -3918,13 +3918,37 @@ declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EV
|
|
|
3918
3918
|
/**
|
|
3919
3919
|
* @private
|
|
3920
3920
|
* @internal
|
|
3921
|
+
* AbortController for managing lifecycle and cleanup
|
|
3921
3922
|
*/
|
|
3922
|
-
private
|
|
3923
|
+
private _abortController;
|
|
3924
|
+
/**
|
|
3925
|
+
* @protected
|
|
3926
|
+
* @internal
|
|
3927
|
+
* Tracks all cleanup functions for subscriptions made via on()
|
|
3928
|
+
*/
|
|
3929
|
+
protected _cleanupFunctions: Array<() => void>;
|
|
3930
|
+
/**
|
|
3931
|
+
* Returns the AbortSignal for this PubSub instance.
|
|
3932
|
+
* Use this signal with APIs that support cancellation (fetch, addEventListener, etc.)
|
|
3933
|
+
* When the PubSub is destroyed, the signal will be aborted and all listeners using it will be automatically removed.
|
|
3934
|
+
*
|
|
3935
|
+
* @example
|
|
3936
|
+
* ```typescript
|
|
3937
|
+
* // Automatically cleaned up when PubSub is destroyed
|
|
3938
|
+
* pubsub.addEventListener(window, 'resize', handler, { signal: pubsub.signal });
|
|
3939
|
+
* ```
|
|
3940
|
+
*/
|
|
3941
|
+
get signal(): AbortSignal;
|
|
3923
3942
|
/**
|
|
3924
3943
|
* @private
|
|
3925
3944
|
* @internal
|
|
3926
3945
|
*/
|
|
3927
3946
|
publish<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, data?: EVENT_PAYLOAD[EVENT_NAME]): void;
|
|
3947
|
+
/**
|
|
3948
|
+
* Subscribe a function to be called when the signal is aborted.
|
|
3949
|
+
* @param fn The function to call when the signal is aborted.
|
|
3950
|
+
*/
|
|
3951
|
+
onAbort<T extends (...args: any[]) => void>(fn: T): void;
|
|
3928
3952
|
/**
|
|
3929
3953
|
* Subscribe a function to an event.
|
|
3930
3954
|
*
|
|
@@ -3932,6 +3956,9 @@ declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EV
|
|
|
3932
3956
|
* function.
|
|
3933
3957
|
* @param fn A callback that gets called when the corresponding event is fired. The
|
|
3934
3958
|
* callback will get passed an argument with a type that's one of event payloads.
|
|
3959
|
+
* @param options Optional options object. If a signal is provided, the subscription will be
|
|
3960
|
+
* automatically cleaned up when that signal is aborted.
|
|
3961
|
+
* @returns A cleanup function that unsubscribes the event listener when called.
|
|
3935
3962
|
* @example
|
|
3936
3963
|
* // Subscribe to the 'click' event
|
|
3937
3964
|
* const handler = (event) => {
|
|
@@ -3943,7 +3970,9 @@ declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EV
|
|
|
3943
3970
|
*/
|
|
3944
3971
|
on<EVENT_NAME extends EVENT>(eventName: EVENT_NAME, fn: (payload: EVENT_PAYLOAD[EVENT_NAME] extends {
|
|
3945
3972
|
data: null;
|
|
3946
|
-
} ? EVENT_PAYLOAD[EVENT_NAME]["data"] : EVENT_PAYLOAD[EVENT_NAME]) => void
|
|
3973
|
+
} ? EVENT_PAYLOAD[EVENT_NAME]["data"] : EVENT_PAYLOAD[EVENT_NAME]) => void, options?: {
|
|
3974
|
+
signal?: AbortSignal;
|
|
3975
|
+
}): () => void;
|
|
3947
3976
|
/**
|
|
3948
3977
|
* Unsubscribe a function previously subscribed with {@link on}
|
|
3949
3978
|
*
|
|
@@ -3964,6 +3993,7 @@ declare class PubSub<EVENT_PAYLOAD, EVENT extends keyof EVENT_PAYLOAD = keyof EV
|
|
|
3964
3993
|
/**
|
|
3965
3994
|
* @private
|
|
3966
3995
|
* @internal
|
|
3996
|
+
* Destroys the PubSub instance and automatically unsubscribes all listeners registered via on().
|
|
3967
3997
|
*/
|
|
3968
3998
|
destroy(): void;
|
|
3969
3999
|
}
|
|
@@ -4097,17 +4127,55 @@ type DirectionProperties = {
|
|
|
4097
4127
|
};
|
|
4098
4128
|
type DirectionFeature = Feature$1<Point$1, DirectionProperties>;
|
|
4099
4129
|
type DirectionsCollection = FeatureCollection$1<Point$1, DirectionProperties>;
|
|
4100
|
-
|
|
4130
|
+
interface DoorGeometry {
|
|
4131
|
+
geoJSON: {
|
|
4132
|
+
geometry: {
|
|
4133
|
+
coordinates: [
|
|
4134
|
+
[
|
|
4135
|
+
number,
|
|
4136
|
+
number
|
|
4137
|
+
],
|
|
4138
|
+
[
|
|
4139
|
+
number,
|
|
4140
|
+
number
|
|
4141
|
+
]
|
|
4142
|
+
];
|
|
4143
|
+
};
|
|
4144
|
+
};
|
|
4145
|
+
}
|
|
4146
|
+
type BaseSimplifyOptions = {
|
|
4101
4147
|
/**
|
|
4102
4148
|
* Enable or disable simplifying.
|
|
4103
4149
|
*/
|
|
4104
4150
|
enabled: boolean;
|
|
4105
4151
|
/**
|
|
4106
4152
|
* The radius of the buffer around the path to consider when simplifying, in meters.
|
|
4107
|
-
* @default 0.
|
|
4153
|
+
* @default 0.4
|
|
4154
|
+
*/
|
|
4155
|
+
radius?: number;
|
|
4156
|
+
};
|
|
4157
|
+
type GreedyLosOptions = BaseSimplifyOptions & {
|
|
4158
|
+
__EXPERIMENTAL_METHOD?: "greedy-los";
|
|
4159
|
+
};
|
|
4160
|
+
type RdpOptions = BaseSimplifyOptions & {
|
|
4161
|
+
__EXPERIMENTAL_METHOD: "rdp";
|
|
4162
|
+
/**
|
|
4163
|
+
* Whether to include door-adjacent nodes (predecessor/successor of doors) in the must-include set.
|
|
4164
|
+
* When true, nodes immediately before and after doors are preserved during simplification.
|
|
4165
|
+
* @default true
|
|
4108
4166
|
*/
|
|
4109
|
-
|
|
4167
|
+
mustIncludeDoorBufferNodes?: boolean;
|
|
4110
4168
|
};
|
|
4169
|
+
type DpOptimalOptions = BaseSimplifyOptions & {
|
|
4170
|
+
__EXPERIMENTAL_METHOD: "dp-optimal";
|
|
4171
|
+
/**
|
|
4172
|
+
* Whether to include door buffer nodes in DP simplification.
|
|
4173
|
+
* When true, predecessor and successor nodes of doors are marked with preventSmoothing.
|
|
4174
|
+
* @default false
|
|
4175
|
+
*/
|
|
4176
|
+
includeDoorBufferNodes?: boolean;
|
|
4177
|
+
};
|
|
4178
|
+
type SimplifyDirectionsOptions = GreedyLosOptions | RdpOptions | DpOptimalOptions;
|
|
4111
4179
|
type DirectionsZone = {
|
|
4112
4180
|
geometry: Feature$1<MultiPolygon$1 | Polygon$1>;
|
|
4113
4181
|
/**
|
|
@@ -4125,6 +4193,7 @@ declare class Navigator$1 {
|
|
|
4125
4193
|
graph: NavigationGraph;
|
|
4126
4194
|
private geometryEdgesByMapId;
|
|
4127
4195
|
private flagDeclarations;
|
|
4196
|
+
private getDoorByNodeId;
|
|
4128
4197
|
private disabledNodeIds;
|
|
4129
4198
|
/**
|
|
4130
4199
|
* Constructs a Navigator instance to manage pathfinding with optional obstructions and grouping features.
|
|
@@ -4133,13 +4202,15 @@ declare class Navigator$1 {
|
|
|
4133
4202
|
* @param {ObstructionCollection} [obstructions] - Optional collection of obstructions that could block paths.
|
|
4134
4203
|
* @param {SpaceCollection} [spaces] - Optional collection of spaces that could block paths.
|
|
4135
4204
|
* @param {string} [groupBy] - Optional property name to group nodes and paths for differentiated processing.
|
|
4205
|
+
* @param {Function} getDoorByNodeId - Function to get door object by node ID.
|
|
4136
4206
|
*/
|
|
4137
|
-
constructor({ nodes, geojsonCollection, groupBy, multiplicativeDistanceWeightScaling, flagDeclarations, }: {
|
|
4207
|
+
constructor({ nodes, geojsonCollection, groupBy, multiplicativeDistanceWeightScaling, flagDeclarations, getDoorByNodeId, }: {
|
|
4138
4208
|
nodes: NodeCollection$1;
|
|
4139
4209
|
geojsonCollection?: ObstructionCollection | SpaceCollection;
|
|
4140
4210
|
groupBy?: string;
|
|
4141
4211
|
multiplicativeDistanceWeightScaling?: boolean;
|
|
4142
4212
|
flagDeclarations?: NavigationFlagDeclarations;
|
|
4213
|
+
getDoorByNodeId: (nodeId: string) => DoorGeometry | undefined;
|
|
4143
4214
|
});
|
|
4144
4215
|
private getDisabledNodeIds;
|
|
4145
4216
|
/**
|
|
@@ -4152,9 +4223,11 @@ declare class Navigator$1 {
|
|
|
4152
4223
|
* @param {SimplifyDirectionsOptions} [simplify] - Options to simplify the pathfinding result.
|
|
4153
4224
|
* @returns {DirectionsCollection} A collection of directional features representing the path.
|
|
4154
4225
|
*/
|
|
4155
|
-
getDirections({ zones: directionsZones, originIds, destinationNodeIds, disabledConnectionNodeIds, simplify, multiplicativeDistanceWeightScaling, overrideEdgeWeights, }: {
|
|
4226
|
+
getDirections({ zones: directionsZones, originIds, from, to, destinationNodeIds, disabledConnectionNodeIds, simplify, multiplicativeDistanceWeightScaling, overrideEdgeWeights, }: {
|
|
4156
4227
|
originIds: string[];
|
|
4157
4228
|
destinationNodeIds: string[];
|
|
4229
|
+
from: NodeFeature[];
|
|
4230
|
+
to: NodeFeature[];
|
|
4158
4231
|
zones?: DirectionsZone[];
|
|
4159
4232
|
disabledConnectionNodeIds?: string[];
|
|
4160
4233
|
simplify?: SimplifyDirectionsOptions;
|
|
@@ -4169,11 +4242,21 @@ declare class Navigator$1 {
|
|
|
4169
4242
|
*/
|
|
4170
4243
|
private generatePath;
|
|
4171
4244
|
/**
|
|
4172
|
-
* Simplifies a sequence of steps by reducing unnecessary nodes using
|
|
4245
|
+
* Simplifies a sequence of steps by reducing unnecessary nodes using line-of-sight checks.
|
|
4246
|
+
*
|
|
4247
|
+
* Method Selection:
|
|
4248
|
+
* - 'greedy-los': Greedy forward scan with line-of-sight validation. Fastest, O(n) time complexity. Good default choice.
|
|
4249
|
+
* - 'rdp': Uses Ramer-Douglas-Peucker preprocessing + line-of-sight validation + door buffer nodes.
|
|
4250
|
+
* Better for paths with doors and complex geometry. Medium speed.
|
|
4251
|
+
* - 'dp-optimal': Dynamic Programming for globally optimal simplification. Slowest but highest quality, O(n²) complexity.
|
|
4252
|
+
* Best when path quality is critical (e.g., indoor navigation with many turns).
|
|
4253
|
+
*
|
|
4254
|
+
* Performance: greedy-los < rdp < dp-optimal
|
|
4255
|
+
* Quality: greedy-los < rdp < dp-optimal
|
|
4173
4256
|
*
|
|
4174
4257
|
* @param {Edge[]} steps - The steps to simplify.
|
|
4175
|
-
* @param {
|
|
4176
|
-
*
|
|
4258
|
+
* @param {SimplifyDirectionsOptions} options - Simplification options.
|
|
4259
|
+
* @param {boolean} multiplicativeDistanceWeightScaling - Distance weight scaling option.
|
|
4177
4260
|
* @returns {Edge[]} An array of simplified edges representing a more direct path.
|
|
4178
4261
|
*/
|
|
4179
4262
|
private simplifyAllSteps;
|
|
@@ -4216,6 +4299,8 @@ declare class Navigator$1 {
|
|
|
4216
4299
|
* @returns {Edge[]} An array of simplified edges.
|
|
4217
4300
|
*/
|
|
4218
4301
|
private simplifySteps;
|
|
4302
|
+
private simplifyStepsImprovedWithSimplifyBeforeLoSChecks;
|
|
4303
|
+
private simplifyStepsWithDPMethod;
|
|
4219
4304
|
/**
|
|
4220
4305
|
* Calculates the approximate distance between two geographic coordinates on Earth's surface.
|
|
4221
4306
|
*
|
|
@@ -4297,13 +4382,14 @@ declare class DirectionsInternal {
|
|
|
4297
4382
|
/**
|
|
4298
4383
|
* @hidden
|
|
4299
4384
|
*/
|
|
4300
|
-
constructor({ nodes, geojsonCollection, connections, groupBy, multiplicativeDistanceWeightScaling, flagDeclarations, }: {
|
|
4385
|
+
constructor({ nodes, geojsonCollection, connections, groupBy, multiplicativeDistanceWeightScaling, flagDeclarations, getDoorByNodeId, }: {
|
|
4301
4386
|
nodes: ParsedMVF["node.geojson"];
|
|
4302
4387
|
geojsonCollection: ParsedMVF["obstruction"] | ParsedMVF["space"];
|
|
4303
4388
|
connections: ParsedMVF["connection.json"];
|
|
4304
4389
|
groupBy?: string;
|
|
4305
4390
|
multiplicativeDistanceWeightScaling?: boolean;
|
|
4306
4391
|
flagDeclarations?: ParsedMVF["navigationFlags.json"];
|
|
4392
|
+
getDoorByNodeId: (nodeId: string) => DoorGeometry | undefined;
|
|
4307
4393
|
});
|
|
4308
4394
|
processTargets(fromNodesByTarget: Map<TNavigationTarget, string[]>, toNodesByTarget: Map<TNavigationTarget, string[]>, mapData: MapDataInternal): {
|
|
4309
4395
|
originIds: string[];
|
|
@@ -4312,10 +4398,7 @@ declare class DirectionsInternal {
|
|
|
4312
4398
|
};
|
|
4313
4399
|
getDirections: (from: TNavigationTarget[], to: TNavigationTarget[], options: {
|
|
4314
4400
|
accessible: boolean;
|
|
4315
|
-
smoothing:
|
|
4316
|
-
enabled: boolean;
|
|
4317
|
-
radius: number;
|
|
4318
|
-
};
|
|
4401
|
+
smoothing: SimplifyDirectionsOptions;
|
|
4319
4402
|
zones: TDirectionZone[];
|
|
4320
4403
|
excludedConnections: Connection[];
|
|
4321
4404
|
connectionIdWeightMap: Record<string, number>;
|
|
@@ -4323,10 +4406,7 @@ declare class DirectionsInternal {
|
|
|
4323
4406
|
/** @deprecated use getDirections instead */
|
|
4324
4407
|
getDirectionsSync: (from: TNavigationTarget[], to: TNavigationTarget[], options: {
|
|
4325
4408
|
accessible: boolean;
|
|
4326
|
-
smoothing:
|
|
4327
|
-
enabled: boolean;
|
|
4328
|
-
radius: number;
|
|
4329
|
-
};
|
|
4409
|
+
smoothing: SimplifyDirectionsOptions;
|
|
4330
4410
|
zones: TDirectionZone[];
|
|
4331
4411
|
excludedConnections: Connection[];
|
|
4332
4412
|
connectionIdWeightMap: Record<string, number>;
|
|
@@ -4528,31 +4608,128 @@ type TGetDirectionsOptions = {
|
|
|
4528
4608
|
*/
|
|
4529
4609
|
accessible?: boolean;
|
|
4530
4610
|
/**
|
|
4531
|
-
* Enable or disable
|
|
4532
|
-
*
|
|
4611
|
+
* Enable or disable path smoothing for directions.
|
|
4612
|
+
* When enabled, the path is simplified using line-of-sight checks to provide a more visually appealing route and shorter instructions.
|
|
4533
4613
|
*
|
|
4534
|
-
* Can be a boolean to enable or disable smoothing, or an object with
|
|
4614
|
+
* Can be a boolean to enable or disable smoothing, or an object with configuration options.
|
|
4615
|
+
*
|
|
4616
|
+
* **Available methods:**
|
|
4617
|
+
* - `'greedy-los'` (default): Greedy forward scan with line-of-sight validation. Fastest, O(n) time complexity. Good default choice.
|
|
4618
|
+
* - `'rdp'`: Uses Ramer-Douglas-Peucker preprocessing + line-of-sight validation + door buffer nodes. Better for paths with doors and complex geometry. Medium speed.
|
|
4619
|
+
* - `'dp-optimal'`: Dynamic Programming for globally optimal simplification. Slowest but highest quality, O(n²) complexity. Best when path quality is critical.
|
|
4535
4620
|
*
|
|
4536
4621
|
* @default true for non-enterprise mode, false for enterprise mode
|
|
4537
4622
|
*
|
|
4538
4623
|
* @example
|
|
4539
4624
|
* ```ts
|
|
4540
|
-
* // Enable smoothing with
|
|
4625
|
+
* // Enable smoothing with default settings
|
|
4541
4626
|
* mapView.getDirections(firstSpace, secondSpace, {
|
|
4542
|
-
*
|
|
4543
|
-
*
|
|
4627
|
+
* smoothing: true
|
|
4628
|
+
* })
|
|
4629
|
+
*
|
|
4630
|
+
* // Enable smoothing with custom radius (in meters)
|
|
4631
|
+
* mapView.getDirections(firstSpace, secondSpace, {
|
|
4632
|
+
* smoothing: {
|
|
4633
|
+
* radius: 1.5,
|
|
4544
4634
|
* }
|
|
4545
4635
|
* })
|
|
4546
4636
|
*
|
|
4547
|
-
* //
|
|
4637
|
+
* // Use greedy line-of-sight method (default, explicit)
|
|
4548
4638
|
* mapView.getDirections(firstSpace, secondSpace, {
|
|
4549
|
-
* smoothing:
|
|
4639
|
+
* smoothing: {
|
|
4640
|
+
* enabled: true,
|
|
4641
|
+
* __EXPERIMENTAL_METHOD: 'greedy-los',
|
|
4642
|
+
* radius: 0.4,
|
|
4643
|
+
* }
|
|
4644
|
+
* })
|
|
4645
|
+
*
|
|
4646
|
+
* // Use RDP method (always uses line-of-sight)
|
|
4647
|
+
* mapView.getDirections(firstSpace, secondSpace, {
|
|
4648
|
+
* smoothing: {
|
|
4649
|
+
* enabled: true,
|
|
4650
|
+
* __EXPERIMENTAL_METHOD: 'rdp',
|
|
4651
|
+
* radius: 0.4,
|
|
4652
|
+
* }
|
|
4653
|
+
* })
|
|
4654
|
+
*
|
|
4655
|
+
* // Use DP-optimal method with door buffer nodes
|
|
4656
|
+
* mapView.getDirections(firstSpace, secondSpace, {
|
|
4657
|
+
* smoothing: {
|
|
4658
|
+
* enabled: true,
|
|
4659
|
+
* __EXPERIMENTAL_METHOD: 'dp-optimal',
|
|
4660
|
+
* __EXPERIMENTAL_INCLUDE_DOOR_BUFFER_NODES: true,
|
|
4661
|
+
* radius: 0.4,
|
|
4662
|
+
* }
|
|
4550
4663
|
* })
|
|
4551
4664
|
* ```
|
|
4552
4665
|
*/
|
|
4553
4666
|
smoothing?: boolean | {
|
|
4667
|
+
/**
|
|
4668
|
+
* Enable or disable path smoothing.
|
|
4669
|
+
* @default true for non-enterprise mode, false for enterprise mode
|
|
4670
|
+
*/
|
|
4554
4671
|
enabled?: boolean;
|
|
4555
|
-
|
|
4672
|
+
/**
|
|
4673
|
+
* The radius of the buffer around the path to consider when simplifying, in meters.
|
|
4674
|
+
* @default 0.75
|
|
4675
|
+
*/
|
|
4676
|
+
radius?: number;
|
|
4677
|
+
/**
|
|
4678
|
+
* @experimental
|
|
4679
|
+
* Path smoothing method using greedy line-of-sight algorithm.
|
|
4680
|
+
* Fastest method with O(n) time complexity. Good default choice.
|
|
4681
|
+
* @default 'greedy-los'
|
|
4682
|
+
*/
|
|
4683
|
+
__EXPERIMENTAL_METHOD?: "greedy-los";
|
|
4684
|
+
} | {
|
|
4685
|
+
/**
|
|
4686
|
+
* Enable or disable path smoothing.
|
|
4687
|
+
* @default true for non-enterprise mode, false for enterprise mode
|
|
4688
|
+
*/
|
|
4689
|
+
enabled?: boolean;
|
|
4690
|
+
/**
|
|
4691
|
+
* The radius of the buffer around the path to consider when simplifying, in meters.
|
|
4692
|
+
* @default 0.75
|
|
4693
|
+
*/
|
|
4694
|
+
radius?: number;
|
|
4695
|
+
/**
|
|
4696
|
+
* @experimental
|
|
4697
|
+
* Path smoothing method using Ramer-Douglas-Peucker preprocessing with line-of-sight validation.
|
|
4698
|
+
* Better for paths with doors and complex geometry. Medium speed.
|
|
4699
|
+
* Always uses line-of-sight validation (cannot be disabled).
|
|
4700
|
+
*/
|
|
4701
|
+
__EXPERIMENTAL_METHOD: "rdp";
|
|
4702
|
+
/**
|
|
4703
|
+
* @experimental
|
|
4704
|
+
* Whether to include door-adjacent nodes (predecessor/successor of doors) in the must-include set.
|
|
4705
|
+
* When true (default), nodes immediately before and after doors are preserved during simplification.
|
|
4706
|
+
* @default true
|
|
4707
|
+
*/
|
|
4708
|
+
__EXPERIMENTAL_MUST_INCLUDE_DOOR_BUFFER_NODES?: boolean;
|
|
4709
|
+
} | {
|
|
4710
|
+
/**
|
|
4711
|
+
* Enable or disable path smoothing.
|
|
4712
|
+
* @default true for non-enterprise mode, false for enterprise mode
|
|
4713
|
+
*/
|
|
4714
|
+
enabled?: boolean;
|
|
4715
|
+
/**
|
|
4716
|
+
* The radius of the buffer around the path to consider when simplifying, in meters.
|
|
4717
|
+
* @default 0.75
|
|
4718
|
+
*/
|
|
4719
|
+
radius?: number;
|
|
4720
|
+
/**
|
|
4721
|
+
* @experimental
|
|
4722
|
+
* Path smoothing method using Dynamic Programming for globally optimal simplification.
|
|
4723
|
+
* Slowest but highest quality, O(n²) complexity. Best when path quality is critical.
|
|
4724
|
+
*/
|
|
4725
|
+
__EXPERIMENTAL_METHOD: "dp-optimal";
|
|
4726
|
+
/**
|
|
4727
|
+
* @experimental
|
|
4728
|
+
* Whether to include 0.5m buffer nodes perpendicular to doors in DP simplification.
|
|
4729
|
+
* When true, predecessor and successor nodes of doors are marked with preventSmoothing.
|
|
4730
|
+
* @default false
|
|
4731
|
+
*/
|
|
4732
|
+
__EXPERIMENTAL_INCLUDE_DOOR_BUFFER_NODES?: boolean;
|
|
4556
4733
|
};
|
|
4557
4734
|
/**
|
|
4558
4735
|
* Defines the special zones for navigation operations.
|
|
@@ -5481,8 +5658,7 @@ declare class Connection extends DetailedMapData<Feature<Point, SpaceProperties>
|
|
|
5481
5658
|
* @internal
|
|
5482
5659
|
*/
|
|
5483
5660
|
constructor(data: MapDataInternal, options: {
|
|
5484
|
-
|
|
5485
|
-
accessible?: boolean;
|
|
5661
|
+
mvfData: MVFConnection;
|
|
5486
5662
|
});
|
|
5487
5663
|
/**
|
|
5488
5664
|
* Whether the connection is accessible. For example elevators are accessible while stairs are not.
|
|
@@ -5518,10 +5694,6 @@ declare class Connection extends DetailedMapData<Feature<Point, SpaceProperties>
|
|
|
5518
5694
|
* @returns {Floor[]} An array of floors for the connection.
|
|
5519
5695
|
*/
|
|
5520
5696
|
get floors(): Floor[];
|
|
5521
|
-
/**
|
|
5522
|
-
* Gets the location profiles ({@link LocationProfile}) associated with the connection.
|
|
5523
|
-
*/
|
|
5524
|
-
get locationProfiles(): LocationProfile[];
|
|
5525
5697
|
/** @internal */
|
|
5526
5698
|
get focusTarget(): Coordinate[];
|
|
5527
5699
|
/**
|
|
@@ -6150,8 +6322,6 @@ type MapDataRecords = {
|
|
|
6150
6322
|
locationProfilesByExternalId: Record<string, LocationProfile[]>;
|
|
6151
6323
|
objectEntranceNodeIdsByObstructionId: Record<string, string[]>;
|
|
6152
6324
|
obstructionIdByEntranceId: Record<string, string>;
|
|
6153
|
-
connectionIdsByLatLon: Record<string, string[]>;
|
|
6154
|
-
mvfConnectionIdsByLatLon: Record<string, string[]>;
|
|
6155
6325
|
locationProfilesByAttachedFeatureId: Record<string, LocationProfile[]>;
|
|
6156
6326
|
mvfSpacesById: Record<string, SpaceCollection["features"][number]>;
|
|
6157
6327
|
mvfNodesById: Record<string, NodeCollection["features"][number]>;
|
|
@@ -6557,6 +6727,10 @@ declare class EnterpriseVenue extends BaseMetaData implements MVFEnterpriseVenue
|
|
|
6557
6727
|
* The default map of the venue.
|
|
6558
6728
|
*/
|
|
6559
6729
|
get defaultMap(): string;
|
|
6730
|
+
/**
|
|
6731
|
+
* The enterprise venue type.
|
|
6732
|
+
*/
|
|
6733
|
+
get enterpriseType(): EnterpriseVenueType | undefined;
|
|
6560
6734
|
/**
|
|
6561
6735
|
* Serializes the EnterpriseVenue data to JSON.
|
|
6562
6736
|
*
|
|
@@ -6740,7 +6914,6 @@ declare class MapDataInternal extends PubSub<{
|
|
|
6740
6914
|
mvfAnnotationsById: MapDataRecords["mvfAnnotationsById"];
|
|
6741
6915
|
mvfConnectionsById: MapDataRecords["mvfConnectionsById"];
|
|
6742
6916
|
mvfConnectionsByNodeId: MapDataRecords["mvfConnectionsByNodeId"];
|
|
6743
|
-
mvfConnectionIdsByLatLon: MapDataRecords["mvfConnectionIdsByLatLon"];
|
|
6744
6917
|
mvfEntrancesById: MapDataRecords["mvfEntrancesById"];
|
|
6745
6918
|
mvfNodesById: MapDataRecords["mvfNodesById"];
|
|
6746
6919
|
mvfObstructionById: MapDataRecords["mvfObstructionById"];
|
|
@@ -6756,7 +6929,6 @@ declare class MapDataInternal extends PubSub<{
|
|
|
6756
6929
|
floorStacksByExternalId: MapDataRecords["floorStacksByExternalId"];
|
|
6757
6930
|
doorsByExternalId: MapDataRecords["doorsByExternalId"];
|
|
6758
6931
|
areasByExternalId: MapDataRecords["areasByExternalId"];
|
|
6759
|
-
connectionSpaceIdsByLatLon: MapDataRecords["connectionIdsByLatLon"];
|
|
6760
6932
|
locationProfilesByAttachedFeatureId: MapDataRecords["locationProfilesByAttachedFeatureId"];
|
|
6761
6933
|
entranceNodeIdsBySpaceId?: MapDataRecords["entranceNodeIdsBySpaceId"];
|
|
6762
6934
|
locationsById: EnterpriseMapDataRecords["locationsById"];
|
|
@@ -6955,6 +7127,13 @@ declare class MapDataInternal extends PubSub<{
|
|
|
6955
7127
|
getDirections: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | TNavigationTarget[], opt?: TGetDirectionsOptions) => Promise<Directions | undefined>;
|
|
6956
7128
|
getDirectionsMultiDestination: (from: TNavigationTarget | TNavigationTarget[], to: TNavigationTarget | (TNavigationTarget | TNavigationTarget[])[], opt?: TGetDirectionsOptions) => Promise<Directions[] | undefined>;
|
|
6957
7129
|
getDistance(from: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node$1 | EnterpriseLocation | Area, to: Space | Door | Coordinate | MapObject | PointOfInterest | Annotation | Node$1 | EnterpriseLocation | Area): number;
|
|
7130
|
+
/**
|
|
7131
|
+
* Gets the door associated with a node.
|
|
7132
|
+
*
|
|
7133
|
+
* @param nodeId The ID of the node to check
|
|
7134
|
+
* @returns The door object if the node is associated with a door, undefined otherwise
|
|
7135
|
+
*/
|
|
7136
|
+
getDoorByNodeId: (nodeId: string) => Door | undefined;
|
|
6958
7137
|
transformImageRequest: (url: string) => Promise<{
|
|
6959
7138
|
url: string;
|
|
6960
7139
|
}>;
|