@wemap/osm 2.7.2 → 2.7.5
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.
|
@@ -108,9 +108,8 @@
|
|
|
108
108
|
<nd ref='-440488' />
|
|
109
109
|
<nd ref='-440490' />
|
|
110
110
|
<nd ref='-440492' />
|
|
111
|
-
<tag k='highway' v='
|
|
111
|
+
<tag k='highway' v='steps' />
|
|
112
112
|
<tag k='level' v='1;2' />
|
|
113
|
-
<tag k='stairs' v='yes' />
|
|
114
113
|
</way>
|
|
115
114
|
<way id='-440503' action='modify' visible='true'>
|
|
116
115
|
<nd ref='-440484' />
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"directory": "packages/osm"
|
|
12
12
|
},
|
|
13
13
|
"name": "@wemap/osm",
|
|
14
|
-
"version": "2.7.
|
|
14
|
+
"version": "2.7.5",
|
|
15
15
|
"bugs": {
|
|
16
16
|
"url": "https://github.com/wemap/wemap-modules-js/issues"
|
|
17
17
|
},
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
],
|
|
27
27
|
"license": "ISC",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@wemap/geo": "^2.7.
|
|
30
|
-
"@wemap/graph": "^2.7.
|
|
29
|
+
"@wemap/geo": "^2.7.4",
|
|
30
|
+
"@wemap/graph": "^2.7.4",
|
|
31
31
|
"@wemap/logger": "^2.7.0",
|
|
32
32
|
"lodash.isnumber": "^3.0.3",
|
|
33
33
|
"sax": "^1.2.4"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "5d60aa9ae789520ef5adeb34a8e4d3e5973ed0b2"
|
|
36
36
|
}
|
|
@@ -58,13 +58,16 @@ describe('OsmRouter - Multi-level itinerary', () => {
|
|
|
58
58
|
it('Verify steps', () => {
|
|
59
59
|
|
|
60
60
|
const steps = itinerary.steps;
|
|
61
|
-
expect(steps.length).equal(
|
|
61
|
+
expect(steps.length).equal(8);
|
|
62
62
|
|
|
63
63
|
verifyNodesOrder(steps[0].nodes, [null, 'p7', 'p8']);
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
verifyNodesOrder(steps[
|
|
64
|
+
verifyNodesOrder(steps[1].nodes, ['p8', 'p9']);
|
|
65
|
+
verifyNodesOrder(steps[2].nodes, ['p9', 'p10']);
|
|
66
|
+
verifyNodesOrder(steps[3].nodes, ['p10', 'p11']);
|
|
67
|
+
verifyNodesOrder(steps[4].nodes, ['p11', 'p12', 'p13', 'p14']);
|
|
68
|
+
verifyNodesOrder(steps[5].nodes, ['p14', 'p15']);
|
|
69
|
+
verifyNodesOrder(steps[6].nodes, ['p15', 'p16']);
|
|
70
|
+
verifyNodesOrder(steps[7].nodes, ['p16']);
|
|
68
71
|
});
|
|
69
72
|
|
|
70
73
|
|
package/src/osrm/OsrmUtils.js
CHANGED
|
@@ -42,7 +42,8 @@ class OsrmUtils {
|
|
|
42
42
|
for (let i = 0; i <= lastStepId; i++) {
|
|
43
43
|
|
|
44
44
|
const {
|
|
45
|
-
nodes, length, nextEdgeData, nextBearing, previousBearing, angle, node,
|
|
45
|
+
nodes, length, nextEdgeData, nextBearing, previousBearing, angle, node,
|
|
46
|
+
duration, levelChange
|
|
46
47
|
} = itinerarySteps[i];
|
|
47
48
|
|
|
48
49
|
const edgeData = i !== lastStepId ? nextEdgeData : itinerary.edges[lastStepId];
|
|
@@ -71,6 +72,10 @@ class OsrmUtils {
|
|
|
71
72
|
wemap: {}
|
|
72
73
|
};
|
|
73
74
|
|
|
75
|
+
if (levelChange !== null) {
|
|
76
|
+
osrmStep.levelChange = levelChange;
|
|
77
|
+
}
|
|
78
|
+
|
|
74
79
|
if (node.data && node.data.tags) {
|
|
75
80
|
osrmStep.wemap.nodeTags = node.data.tags;
|
|
76
81
|
}
|
|
@@ -226,9 +231,12 @@ class OsrmUtils {
|
|
|
226
231
|
}
|
|
227
232
|
step.nodes.push(node);
|
|
228
233
|
|
|
234
|
+
const isFirstNode = coordinates[0] === coords;
|
|
229
235
|
const isLastNode = coordinates[coordinates.length - 1] === coords;
|
|
230
|
-
if (
|
|
236
|
+
if (isFirstNode) {
|
|
231
237
|
itinerary._nextStepsIndexes.push(i);
|
|
238
|
+
} else if (!isLastNode) {
|
|
239
|
+
itinerary._nextStepsIndexes.push(i + 1);
|
|
232
240
|
}
|
|
233
241
|
|
|
234
242
|
if (previousNode) {
|
|
@@ -250,17 +258,18 @@ class OsrmUtils {
|
|
|
250
258
|
: deg2rad(jsonStep.maneuver.bearing_after);
|
|
251
259
|
step.angle = diffAngle(step.previousBearing, step.nextBearing + Math.PI);
|
|
252
260
|
step.name = jsonStep.name;
|
|
261
|
+
step.levelChange = jsonStep.levelChange ? jsonStep.levelChange : null;
|
|
253
262
|
|
|
254
263
|
/**
|
|
255
264
|
* Wemap fields
|
|
256
265
|
*/
|
|
257
266
|
if (jsonStep.wemap) {
|
|
258
|
-
const firstNode =
|
|
267
|
+
const firstNode = step.nodes[0];
|
|
259
268
|
if (jsonStep.wemap.nodeTags && firstNode) {
|
|
260
269
|
firstNode.data = { tags: jsonStep.wemap.nodeTags };
|
|
261
270
|
}
|
|
262
271
|
|
|
263
|
-
const firstEdge =
|
|
272
|
+
const firstEdge = step.edges[0];
|
|
264
273
|
if (jsonStep.wemap.nextEdgeTags && firstEdge) {
|
|
265
274
|
firstEdge.data = {
|
|
266
275
|
tags: jsonStep.wemap.nextEdgeTags,
|
|
@@ -85,13 +85,13 @@ describe('OsrmUtils', () => {
|
|
|
85
85
|
expect(step.name).equals('Rue du Docteur Louis Perrier');
|
|
86
86
|
|
|
87
87
|
expect(itinerary._nextStepsIndexes.length).equals(itinerary.nodes.length);
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
}
|
|
91
|
-
for (let i = 5; i <= 15; i++) {
|
|
88
|
+
expect(itinerary._nextStepsIndexes[0]).equals(0);
|
|
89
|
+
for (let i = 1; i <= 5; i++) {
|
|
92
90
|
expect(itinerary._nextStepsIndexes[i]).equals(1);
|
|
93
91
|
}
|
|
94
|
-
|
|
92
|
+
for (let i = 6; i <= 16; i++) {
|
|
93
|
+
expect(itinerary._nextStepsIndexes[i]).equals(2);
|
|
94
|
+
}
|
|
95
95
|
expect(itinerary._nextStepsIndexes[17]).equals(3);
|
|
96
96
|
expect(itinerary._nextStepsIndexes[18]).equals(4);
|
|
97
97
|
});
|
|
@@ -172,28 +172,23 @@ describe('OsrmUtils', () => {
|
|
|
172
172
|
expect(steps[3].maneuver.bearing_after).be.closeTo(281.93, 0.01);
|
|
173
173
|
|
|
174
174
|
expect(steps[4].maneuver.modifier).equals('right');
|
|
175
|
-
expect(steps[4].distance).be.closeTo(
|
|
175
|
+
expect(steps[4].distance).be.closeTo(10.71, 0.01);
|
|
176
176
|
expect(steps[4].maneuver.bearing_after).be.closeTo(12.22, 0.01);
|
|
177
|
+
expect(steps[4].levelChange).is.not.null;
|
|
178
|
+
expect(steps[4].levelChange.direction).equals('down');
|
|
179
|
+
expect(steps[4].levelChange.diff).equals(-1);
|
|
177
180
|
|
|
178
|
-
expect(steps[5].maneuver.modifier).equals('
|
|
179
|
-
expect(steps[5].distance).be.closeTo(
|
|
180
|
-
expect(steps[5].maneuver.bearing_after).be.closeTo(102.
|
|
181
|
+
expect(steps[5].maneuver.modifier).equals('left');
|
|
182
|
+
expect(steps[5].distance).be.closeTo(4.23, 0.01);
|
|
183
|
+
expect(steps[5].maneuver.bearing_after).be.closeTo(102.00, 0.01);
|
|
181
184
|
|
|
182
185
|
expect(steps[6].maneuver.modifier).equals('right');
|
|
183
|
-
expect(steps[6].distance).be.closeTo(
|
|
184
|
-
expect(steps[6].maneuver.bearing_after).be.closeTo(
|
|
186
|
+
expect(steps[6].distance).be.closeTo(5.03, 0.01);
|
|
187
|
+
expect(steps[6].maneuver.bearing_after).be.closeTo(191.75, 0.01);
|
|
185
188
|
|
|
186
189
|
expect(steps[7].maneuver.modifier).equals('left');
|
|
187
|
-
expect(steps[7].distance).be.closeTo(
|
|
188
|
-
expect(steps[7].maneuver.bearing_after).be.closeTo(
|
|
189
|
-
|
|
190
|
-
expect(steps[8].maneuver.modifier).equals('right');
|
|
191
|
-
expect(steps[8].distance).be.closeTo(5.03, 0.01);
|
|
192
|
-
expect(steps[8].maneuver.bearing_after).be.closeTo(191.75, 0.01);
|
|
193
|
-
|
|
194
|
-
expect(steps[9].maneuver.modifier).equals('left');
|
|
195
|
-
expect(steps[9].distance).be.closeTo(0, 0.01);
|
|
196
|
-
expect(steps[9].maneuver.bearing_after).be.closeTo(0, 0.01);
|
|
190
|
+
expect(steps[7].distance).be.closeTo(0, 0.01);
|
|
191
|
+
expect(steps[7].maneuver.bearing_after).be.closeTo(0, 0.01);
|
|
197
192
|
|
|
198
193
|
});
|
|
199
194
|
|