@wemap/osm 2.7.1 → 2.7.4

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.1",
14
+ "version": "2.7.4",
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.1",
30
- "@wemap/graph": "^2.7.1",
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": "3d332f1dce308ba28f2a551c2e709e840c54bd83"
35
+ "gitHead": "346dd50c4934b77b831a081f3543405865f1a65e"
36
36
  }
@@ -51,11 +51,11 @@ class OsmNetwork extends Network {
51
51
  if (node.data.tags.highway === 'elevator') {
52
52
  // We have to clone this node for each connected edge
53
53
  OsmNetwork.createNodesAndEdgesFromElevator(networkModel, node);
54
- } else {
55
- node.generateLevelFromEdges();
56
54
  }
57
55
  });
58
56
 
57
+ Node.generateNodesLevels(networkModel.nodes);
58
+
59
59
  return networkModel;
60
60
  }
61
61
 
@@ -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
  }
@@ -250,17 +255,18 @@ class OsrmUtils {
250
255
  : deg2rad(jsonStep.maneuver.bearing_after);
251
256
  step.angle = diffAngle(step.previousBearing, step.nextBearing + Math.PI);
252
257
  step.name = jsonStep.name;
258
+ step.levelChange = jsonStep.levelChange ? jsonStep.levelChange : null;
253
259
 
254
260
  /**
255
261
  * Wemap fields
256
262
  */
257
263
  if (jsonStep.wemap) {
258
- const firstNode = itinerary.nodes[0];
264
+ const firstNode = step.nodes[0];
259
265
  if (jsonStep.wemap.nodeTags && firstNode) {
260
266
  firstNode.data = { tags: jsonStep.wemap.nodeTags };
261
267
  }
262
268
 
263
- const firstEdge = itinerary.edges[0];
269
+ const firstEdge = step.edges[0];
264
270
  if (jsonStep.wemap.nextEdgeTags && firstEdge) {
265
271
  firstEdge.data = {
266
272
  tags: jsonStep.wemap.nextEdgeTags,
@@ -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