@any-routing/core 0.0.0 → 0.1.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/package.json
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import { AnyRoutingDataResponse, RouteSummary } from './data-providers';
|
|
2
2
|
import { AnyRoutingEventsMap, AnyRoutingOptions, AnyRoutingState, Waypoint as InputWaypoint, InternalWaypoint, RecalculateOptions, Mode } from './libre-routing.model';
|
|
3
|
-
export declare class AnyRouting<R extends AnyRoutingDataResponse = AnyRoutingDataResponse
|
|
3
|
+
export declare class AnyRouting<R extends AnyRoutingDataResponse = AnyRoutingDataResponse> {
|
|
4
4
|
private readonly dispatcher;
|
|
5
|
-
private
|
|
5
|
+
private readonly geocoder?;
|
|
6
6
|
private _options;
|
|
7
7
|
private _plugins;
|
|
8
8
|
private _initialState;
|
|
9
9
|
private _state;
|
|
10
|
-
get map(): MapType;
|
|
11
10
|
get options(): AnyRoutingOptions;
|
|
12
11
|
get data(): R;
|
|
13
12
|
get state(): AnyRoutingState<R>;
|
|
@@ -15,7 +14,7 @@ export declare class AnyRouting<R extends AnyRoutingDataResponse = AnyRoutingDat
|
|
|
15
14
|
get selectedRouteId(): number | undefined | null;
|
|
16
15
|
private get waypoints();
|
|
17
16
|
constructor(options: AnyRoutingOptions);
|
|
18
|
-
initialize(
|
|
17
|
+
initialize(): void;
|
|
19
18
|
onRemove(): void;
|
|
20
19
|
setMode(mode: Mode): void;
|
|
21
20
|
setWaypoints(waypoints: InputWaypoint[]): void;
|
|
@@ -40,4 +39,5 @@ export declare class AnyRouting<R extends AnyRoutingDataResponse = AnyRoutingDat
|
|
|
40
39
|
private _patchState;
|
|
41
40
|
private transformToInternalWaypoints;
|
|
42
41
|
private fire;
|
|
42
|
+
private geocodeWaypoints;
|
|
43
43
|
}
|
package/src/lib/libre-routing.js
CHANGED
|
@@ -4,9 +4,6 @@ import { randomId } from './utils/random';
|
|
|
4
4
|
import { InternalWaypointC, } from './libre-routing.model';
|
|
5
5
|
import { featureCollection } from '@turf/helpers';
|
|
6
6
|
export class AnyRouting {
|
|
7
|
-
get map() {
|
|
8
|
-
return this._map;
|
|
9
|
-
}
|
|
10
7
|
get options() {
|
|
11
8
|
return this._options;
|
|
12
9
|
}
|
|
@@ -40,9 +37,15 @@ export class AnyRouting {
|
|
|
40
37
|
this._state = Object.assign({}, this._initialState);
|
|
41
38
|
this._options = Object.assign({ uniqueKey: randomId() }, options);
|
|
42
39
|
this._plugins = (_a = options.plugins) !== null && _a !== void 0 ? _a : [];
|
|
40
|
+
if (this.options.waypointsSyncStrategy === 'geocodeFirst' && !this.options.geocoder) {
|
|
41
|
+
throw new Error('Geocoder is required when waypointsSyncStrategy is `geocodeFirst`');
|
|
42
|
+
}
|
|
43
|
+
this.geocoder =
|
|
44
|
+
this.options.geocoder && typeof this.options.geocoder === 'function'
|
|
45
|
+
? { geocode: this.options.geocoder }
|
|
46
|
+
: this.options.geocoder;
|
|
43
47
|
}
|
|
44
|
-
initialize(
|
|
45
|
-
this._map = map;
|
|
48
|
+
initialize() {
|
|
46
49
|
this.initPlugins();
|
|
47
50
|
}
|
|
48
51
|
onRemove() {
|
|
@@ -56,7 +59,6 @@ export class AnyRouting {
|
|
|
56
59
|
setWaypoints(waypoints) {
|
|
57
60
|
const internalWaypoints = this.transformToInternalWaypoints(waypoints);
|
|
58
61
|
this._patchState({ waypoints: internalWaypoints });
|
|
59
|
-
this.fire('waypointsChanged', { waypoints: this.state.waypoints });
|
|
60
62
|
}
|
|
61
63
|
getWaypoint(waypointId) {
|
|
62
64
|
return this._state.waypoints[waypointId];
|
|
@@ -64,16 +66,11 @@ export class AnyRouting {
|
|
|
64
66
|
recalculateRoute(opts = {}) {
|
|
65
67
|
var _a;
|
|
66
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
67
|
-
if (
|
|
69
|
+
if (this.waypoints.length < 2)
|
|
68
70
|
return;
|
|
69
71
|
if (!this.options.dataProvider) {
|
|
70
72
|
throw new Error('No data provider');
|
|
71
73
|
}
|
|
72
|
-
this.fire('calculationStarted', {
|
|
73
|
-
mode: this.state.mode,
|
|
74
|
-
waypoints: this.waypoints,
|
|
75
|
-
recalculateOptions: opts,
|
|
76
|
-
});
|
|
77
74
|
if (opts.dropPendingRequests) {
|
|
78
75
|
yield this.options.dataProvider.abortAllRequests();
|
|
79
76
|
}
|
|
@@ -81,24 +78,39 @@ export class AnyRouting {
|
|
|
81
78
|
if (!this._state.loading) {
|
|
82
79
|
patchState = Object.assign(Object.assign({}, patchState), { loading: true });
|
|
83
80
|
}
|
|
81
|
+
this.fire('calculationStarted', {
|
|
82
|
+
mode: this.state.mode,
|
|
83
|
+
waypoints: this.waypoints,
|
|
84
|
+
recalculateOptions: opts,
|
|
85
|
+
});
|
|
84
86
|
this._patchState(patchState);
|
|
85
87
|
if ('loading' in patchState) {
|
|
86
88
|
this.fire('loadingChanged', { loading: true });
|
|
87
89
|
}
|
|
88
90
|
try {
|
|
91
|
+
let patchState = {};
|
|
92
|
+
if (opts.syncWaypoints !== false && this.options.waypointsSyncStrategy === 'geocodeFirst') {
|
|
93
|
+
const waypointsToSyncIds = this._state.waypoints.reduce((acc, w, index) => {
|
|
94
|
+
if (!w.geocoded) {
|
|
95
|
+
acc.push(index);
|
|
96
|
+
}
|
|
97
|
+
return acc;
|
|
98
|
+
}, []);
|
|
99
|
+
if (waypointsToSyncIds.length > 0) {
|
|
100
|
+
const waypoints = yield this.geocodeWaypoints(this._state.waypoints);
|
|
101
|
+
this._patchState({ waypoints });
|
|
102
|
+
waypointsToSyncIds.forEach((waypointId) => {
|
|
103
|
+
this.fire('waypointGeocoded', { waypoint: waypoints[waypointId] });
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
}
|
|
89
107
|
const data = (yield this.options.dataProvider.request(this._state.waypoints, {
|
|
90
108
|
mode: this.state.mode,
|
|
91
109
|
}));
|
|
92
|
-
|
|
93
|
-
data,
|
|
94
|
-
selectedRouteId: data.selectedRouteId,
|
|
95
|
-
routesShapeGeojson: data.routesShapeGeojson,
|
|
96
|
-
};
|
|
97
|
-
let waypointsUpdated = false;
|
|
110
|
+
patchState = Object.assign(Object.assign({}, patchState), { data, selectedRouteId: data.selectedRouteId, routesShapeGeojson: data.routesShapeGeojson });
|
|
98
111
|
if (opts.syncWaypoints !== false && this.options.waypointsSyncStrategy === 'toPath') {
|
|
99
112
|
const syncedWaypoints = this.syncWaypointsPositions(data.routes[0].waypoints);
|
|
100
113
|
patchState = Object.assign(Object.assign({}, patchState), { waypoints: syncedWaypoints });
|
|
101
|
-
waypointsUpdated = true;
|
|
102
114
|
}
|
|
103
115
|
this._patchState(patchState);
|
|
104
116
|
this.fire('routesFound', {
|
|
@@ -107,9 +119,6 @@ export class AnyRouting {
|
|
|
107
119
|
data,
|
|
108
120
|
recalculateOptions: opts,
|
|
109
121
|
});
|
|
110
|
-
if (waypointsUpdated) {
|
|
111
|
-
this.fire('waypointsChanged', { waypoints: this.state.waypoints });
|
|
112
|
-
}
|
|
113
122
|
return this._state.data;
|
|
114
123
|
}
|
|
115
124
|
catch (e) {
|
|
@@ -154,7 +163,7 @@ export class AnyRouting {
|
|
|
154
163
|
return `${name}-${this.options.uniqueKey}`;
|
|
155
164
|
}
|
|
156
165
|
syncWaypointsPositions(waypoints) {
|
|
157
|
-
const newWaypoints = waypoints.map((waypoint, index) => (Object.assign(Object.assign({}, this._state.waypoints[index]), { position: this._state.waypoints[index].
|
|
166
|
+
const newWaypoints = waypoints.map((waypoint, index) => (Object.assign(Object.assign({}, this._state.waypoints[index]), { position: waypoint, originalPosition: this._state.waypoints[index].originalPosition || this._state.waypoints[index].position, properties: this._state.waypoints[index].properties })));
|
|
158
167
|
return newWaypoints;
|
|
159
168
|
}
|
|
160
169
|
setState({ waypoints, data, routesShapeGeojson, selectedRouteId, }) {
|
|
@@ -200,6 +209,9 @@ export class AnyRouting {
|
|
|
200
209
|
return;
|
|
201
210
|
}
|
|
202
211
|
this._setState(Object.assign(Object.assign({}, this._state), patchState), source, Object.keys(patchState));
|
|
212
|
+
if ('waypoints' in patchState) {
|
|
213
|
+
this.fire('waypointsChanged', { waypoints: this.state.waypoints });
|
|
214
|
+
}
|
|
203
215
|
}
|
|
204
216
|
transformToInternalWaypoints(waypoints) {
|
|
205
217
|
return waypoints.map((waypoint, index) => InternalWaypointC.fromWaypoint(waypoint, { index, isFirst: index === 0, isLast: index === waypoints.length - 1 }));
|
|
@@ -208,5 +220,16 @@ export class AnyRouting {
|
|
|
208
220
|
//@ts-ignore
|
|
209
221
|
this.dispatcher.fire(event, Object.assign(Object.assign({}, data), { state: this.state, eventName: event }));
|
|
210
222
|
}
|
|
223
|
+
geocodeWaypoints(waypoints) {
|
|
224
|
+
const waypointGeocodes = waypoints.map((waypoint) => __awaiter(this, void 0, void 0, function* () {
|
|
225
|
+
if (waypoint.geocoded) {
|
|
226
|
+
return waypoint;
|
|
227
|
+
}
|
|
228
|
+
const geocodedWaypoint = yield this.geocoder.geocode(waypoint);
|
|
229
|
+
geocodedWaypoint.geocoded = true;
|
|
230
|
+
return geocodedWaypoint;
|
|
231
|
+
}));
|
|
232
|
+
return Promise.all(waypointGeocodes);
|
|
233
|
+
}
|
|
211
234
|
}
|
|
212
235
|
//# sourceMappingURL=libre-routing.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libre-routing.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/libre-routing.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EASL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"libre-routing.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/libre-routing.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,9 @@ export type RouteSelectedEvent<R extends AnyRoutingDataResponse = AnyRoutingData
|
|
|
32
32
|
export type WaypointsChangedEvent<R extends AnyRoutingDataResponse = AnyRoutingDataResponse> = BaseEvent<R> & {
|
|
33
33
|
waypoints: InternalWaypoint[];
|
|
34
34
|
};
|
|
35
|
+
export type WaypointGeocoded<R extends AnyRoutingDataResponse = AnyRoutingDataResponse> = BaseEvent<R> & {
|
|
36
|
+
waypoint: InternalWaypoint;
|
|
37
|
+
};
|
|
35
38
|
export type LoadingChangedEvent<R extends AnyRoutingDataResponse = AnyRoutingDataResponse> = BaseEvent<R> & {
|
|
36
39
|
loading: boolean;
|
|
37
40
|
};
|
|
@@ -47,6 +50,7 @@ export interface AnyRoutingEventsMap {
|
|
|
47
50
|
routesFound: RoutesFoundEvent;
|
|
48
51
|
routeSelected: RouteSelectedEvent;
|
|
49
52
|
waypointsChanged: WaypointsChangedEvent;
|
|
53
|
+
waypointGeocoded: WaypointGeocoded;
|
|
50
54
|
loadingChanged: LoadingChangedEvent;
|
|
51
55
|
stateUpdated: StateUpdatedEvent;
|
|
52
56
|
}
|
|
@@ -67,33 +71,34 @@ export type AnyRoutingState<DataType = AnyRoutingDataResponse> = {
|
|
|
67
71
|
export interface InternalWaypoint {
|
|
68
72
|
index: number;
|
|
69
73
|
position: WaypointPosition;
|
|
70
|
-
mappedPosition?: WaypointPosition;
|
|
71
74
|
originalPosition: WaypointPosition;
|
|
72
|
-
originalMappedPosition?: WaypointPosition;
|
|
73
75
|
properties: InternalWaypointProperties & Record<string, any>;
|
|
76
|
+
geocoded?: boolean;
|
|
74
77
|
}
|
|
75
78
|
export declare function isWaypointPositionEqual(posA: WaypointPosition, posB: WaypointPosition): boolean;
|
|
76
79
|
export declare class InternalWaypointC {
|
|
77
|
-
static isChanged(waypoint: InternalWaypoint): boolean;
|
|
78
|
-
static isPositionChanged(waypoint: InternalWaypoint): boolean;
|
|
79
|
-
static isMappedPositionChanged(waypoint: InternalWaypoint): boolean;
|
|
80
80
|
static fromWaypoint(waypoint: Waypoint, props: InternalWaypointProperties): InternalWaypoint;
|
|
81
81
|
}
|
|
82
82
|
export interface Waypoint {
|
|
83
83
|
position: WaypointPosition;
|
|
84
|
-
|
|
84
|
+
originalPosition?: WaypointPosition;
|
|
85
85
|
properties?: Record<string, string | boolean | number>;
|
|
86
|
+
geocoded?: boolean;
|
|
86
87
|
}
|
|
87
88
|
export type PluginFactory = AnyRoutingPlugin | (new (...args: any[]) => AnyRoutingPlugin);
|
|
89
|
+
export interface AnyRoutingGeocoder {
|
|
90
|
+
geocode(waypoint: InternalWaypoint): Promise<InternalWaypoint>;
|
|
91
|
+
}
|
|
88
92
|
export type AnyRoutingOptions = {
|
|
89
93
|
dataProvider: AnyRoutingDataProvider;
|
|
94
|
+
geocoder?: AnyRoutingGeocoder | ((waypoint: InternalWaypoint) => Promise<InternalWaypoint>);
|
|
90
95
|
plugins?: PluginFactory[];
|
|
91
96
|
uniqueKey?: string;
|
|
92
97
|
waypointsSyncStrategy: 'none' | 'toPath' | 'geocodeFirst';
|
|
93
98
|
};
|
|
94
99
|
export interface AnyRoutingPlugin {
|
|
95
|
-
onAdd(AnyRouting: AnyRouting<any
|
|
96
|
-
onRemove(AnyRouting: AnyRouting<any
|
|
100
|
+
onAdd(AnyRouting: AnyRouting<any>): void;
|
|
101
|
+
onRemove(AnyRouting: AnyRouting<any>): void;
|
|
97
102
|
}
|
|
98
103
|
export interface RecalculateOptions {
|
|
99
104
|
fitViewToData?: boolean;
|
|
@@ -2,24 +2,12 @@ export function isWaypointPositionEqual(posA, posB) {
|
|
|
2
2
|
return posA.lat === posB.lat && posA.lng === posB.lng;
|
|
3
3
|
}
|
|
4
4
|
export class InternalWaypointC {
|
|
5
|
-
static isChanged(waypoint) {
|
|
6
|
-
return !this.isPositionChanged(waypoint) || !this.isMappedPositionChanged(waypoint);
|
|
7
|
-
}
|
|
8
|
-
static isPositionChanged(waypoint) {
|
|
9
|
-
return !isWaypointPositionEqual(waypoint.originalPosition, waypoint.position);
|
|
10
|
-
}
|
|
11
|
-
static isMappedPositionChanged(waypoint) {
|
|
12
|
-
return (!!waypoint.originalMappedPosition &&
|
|
13
|
-
!!waypoint.mappedPosition &&
|
|
14
|
-
!isWaypointPositionEqual(waypoint.originalMappedPosition, waypoint.mappedPosition));
|
|
15
|
-
}
|
|
16
5
|
static fromWaypoint(waypoint, props) {
|
|
17
6
|
return {
|
|
18
7
|
index: props.index,
|
|
19
8
|
originalPosition: waypoint.position,
|
|
20
9
|
position: waypoint.position,
|
|
21
|
-
|
|
22
|
-
mappedPosition: waypoint.mappedPosition,
|
|
10
|
+
geocoded: waypoint.geocoded,
|
|
23
11
|
properties: Object.assign(Object.assign({}, props), (waypoint.properties || {})),
|
|
24
12
|
};
|
|
25
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libre-routing.model.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/libre-routing.model.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"libre-routing.model.js","sourceRoot":"","sources":["../../../../../packages/core/src/lib/libre-routing.model.ts"],"names":[],"mappings":"AA6FA,MAAM,UAAU,uBAAuB,CAAC,IAAsB,EAAE,IAAsB;IACpF,OAAO,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC;AACxD,CAAC;AAED,MAAM,OAAO,iBAAiB;IACrB,MAAM,CAAC,YAAY,CAAC,QAAkB,EAAE,KAAiC;QAC9E,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,gBAAgB,EAAE,QAAQ,CAAC,QAAQ;YACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,UAAU,kCAAO,KAAK,GAAK,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAE;SACzD,CAAC;IACJ,CAAC;CACF"}
|