@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='footway' />
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.2",
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.2",
30
- "@wemap/graph": "^2.7.2",
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": "ec928b7890e3c37be2a32b1ba1c108aeba9e15b7"
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(10);
61
+ expect(steps.length).equal(8);
62
62
 
63
63
  verifyNodesOrder(steps[0].nodes, [null, 'p7', 'p8']);
64
- for (let i = 2; i <= 9; i++) {
65
- verifyNodesOrder(steps[i - 1].nodes, ['p' + [i + 6], 'p' + [i + 7]]);
66
- }
67
- verifyNodesOrder(steps[9].nodes, ['p16']);
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
 
@@ -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, duration
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 (!isLastNode || step.lastStep) {
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 = itinerary.nodes[0];
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 = itinerary.edges[0];
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
- for (let i = 0; i <= 4; i++) {
89
- expect(itinerary._nextStepsIndexes[i]).equals(0);
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
- expect(itinerary._nextStepsIndexes[16]).equals(2);
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(4.51, 0.01);
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('right');
179
- expect(steps[5].distance).be.closeTo(1.72, 0.01);
180
- expect(steps[5].maneuver.bearing_after).be.closeTo(102.22, 0.01);
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(4.49, 0.01);
184
- expect(steps[6].maneuver.bearing_after).be.closeTo(192.22, 0.01);
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(4.23, 0.01);
188
- expect(steps[7].maneuver.bearing_after).be.closeTo(102.00, 0.01);
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