osm2geojson-lite 0.8.16 → 0.9.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/Makefile CHANGED
@@ -1,2 +1,2 @@
1
1
  osm2geojson-lite.js: lib/index.js package.json
2
- browserify -s osm2geojson lib/index.js | uglifyjs -c -m -o dist/osm2geojson-lite.js
2
+ npx browserify -s osm2geojson lib/index.js | npx uglifyjs -c -m -o dist/osm2geojson-lite.js
package/lib/index.js CHANGED
@@ -50,8 +50,9 @@ module.exports = (osm, opts) => {
50
50
 
51
51
  case 'relation':
52
52
  let relation = new Relation(elem.id, refElements);
53
- if (elem.bounds) with (elem.bounds)
54
- relation.setBounds([parseFloat(minlon), parseFloat(minlat), parseFloat(maxlon), parseFloat(maxlat)]);
53
+ if (elem.bounds) {
54
+ relation.setBounds([parseFloat(elem.bounds.minlon), parseFloat(elem.bounds.minlat), parseFloat(elem.bounds.maxlon), parseFloat(elem.bounds.maxlat)]);
55
+ }
55
56
  if (elem.tags) relation.addTags(elem.tags);
56
57
  relation.addProps(purgeProps(elem, ['id', 'type', 'tags', 'bounds', 'members']));
57
58
  if (elem.members)
@@ -69,35 +70,31 @@ module.exports = (osm, opts) => {
69
70
  const xmlParser = new XmlParser({progressive: true});
70
71
 
71
72
  xmlParser.on('</osm.node>', node => {
72
- with (node) {
73
- let nd = new Node(id, refElements);
74
- for (let [k, v] of Object.entries(node))
75
- if (!k.startsWith('$') && ['id', 'lon', 'lat'].indexOf(k) < 0)
76
- nd.addProp(k, v);
77
- nd.setLatLng(node);
78
- if (node.$innerNodes)
79
- for (let ind of $innerNodes)
80
- if(ind.$tag === 'tag')
81
- nd.addTag(ind.k, ind.v);
82
- }
73
+ let nd = new Node(node.id, refElements);
74
+ for (let [k, v] of Object.entries(node))
75
+ if (!k.startsWith('$') && ['id', 'lon', 'lat'].indexOf(k) < 0)
76
+ nd.addProp(k, v);
77
+ nd.setLatLng(node);
78
+ if (node.$innerNodes)
79
+ for (let ind of node.$innerNodes)
80
+ if(ind.$tag === 'tag')
81
+ nd.addTag(ind.k, ind.v);
83
82
  });
84
83
 
85
84
  xmlParser.on('</osm.way>', node => {
86
- with (node) {
87
- let way = new Way(id, refElements);
88
- for (let [k, v] of Object.entries(node))
89
- if (!k.startsWith('$') && ['id'].indexOf(k) < 0)
90
- way.addProp(k, v);
91
- if (node.$innerNodes) {
92
- for (let ind of $innerNodes)
93
- if (ind.$tag === 'nd') {
94
- if (ind.lon && ind.lat)
95
- way.addLatLng(ind);
96
- else if (ind.ref)
97
- way.addNodeRef(ind.ref);
98
- } else if (ind.$tag === 'tag')
99
- way.addTag(ind.k, ind.v);
100
- }
85
+ let way = new Way(node.id, refElements);
86
+ for (let [k, v] of Object.entries(node))
87
+ if (!k.startsWith('$') && ['id'].indexOf(k) < 0)
88
+ way.addProp(k, v);
89
+ if (node.$innerNodes) {
90
+ for (let ind of node.$innerNodes)
91
+ if (ind.$tag === 'nd') {
92
+ if (ind.lon && ind.lat)
93
+ way.addLatLng(ind);
94
+ else if (ind.ref)
95
+ way.addNodeRef(ind.ref);
96
+ } else if (ind.$tag === 'tag')
97
+ way.addTag(ind.k, ind.v);
101
98
  }
102
99
  });
103
100
 
@@ -106,42 +103,37 @@ module.exports = (osm, opts) => {
106
103
  });
107
104
 
108
105
  xmlParser.on('</osm.relation.member>', (node, parent) => {
109
- with (node) {
110
- let relation = refElements.get(`relation/${parent.id}`);
111
- let member = {
112
- type: type,
113
- role: node.role? role : '',
114
- ref: ref
115
- };
116
-
117
- if (node.lat && node.lon) {
118
- member.lat = lat, member.lon = lon, member.tags = {};
119
- for (let [k, v] of Object.entries(node))
120
- if (!k.startsWith('$') && ['type', 'lat', 'lon'].indexOf(k) < 0)
121
- member[k] = v;
122
- }
123
-
124
- if (node.$innerNodes) {
125
- let geometry = [];
126
- let nodes = [];
127
- for (let ind of $innerNodes) {
128
- if (ind.lat && ind.lon)
129
- geometry.push(ind);
130
- else
131
- nodes.push(ind.ref);
132
- }
133
- if (geometry.length > 0)
134
- member.geometry = geometry;
135
- else if (nodes.length > 0)
136
- member.nodes = nodes;
106
+ let relation = refElements.get(`relation/${parent.id}`);
107
+ let member = {
108
+ type: node.type,
109
+ role: node.role? node.role : '',
110
+ ref: node.ref
111
+ };
112
+ if (node.lat && node.lon) {
113
+ member.lat = node.lat, member.lon = node.lon, member.tags = {};
114
+ for (let [k, v] of Object.entries(node))
115
+ if (!k.startsWith('$') && ['type', 'lat', 'lon'].indexOf(k) < 0)
116
+ member[k] = v;
117
+ }
118
+ if (node.$innerNodes) {
119
+ let geometry = [];
120
+ let nodes = [];
121
+ for (let ind of node.$innerNodes) {
122
+ if (ind.lat && ind.lon)
123
+ geometry.push(ind);
124
+ else
125
+ nodes.push(ind.ref);
137
126
  }
138
- relation.addMember(member);
127
+ if (geometry.length > 0)
128
+ member.geometry = geometry;
129
+ else if (nodes.length > 0)
130
+ member.nodes = nodes;
139
131
  }
132
+ relation.addMember(member);
140
133
  });
141
134
 
142
135
  xmlParser.on('</osm.relation.bounds>', (node, parent) => {
143
- with (node)
144
- refElements.get(`relation/${parent.id}`).setBounds([parseFloat(minlon), parseFloat(minlat), parseFloat(maxlon), parseFloat(maxlat)]);
136
+ refElements.get(`relation/${parent.id}`).setBounds([parseFloat(node.minlon), parseFloat(node.minlat), parseFloat(node.maxlon), parseFloat(node.maxlat)]);
145
137
  });
146
138
 
147
139
  xmlParser.on('</osm.relation.tag>', (node, parent) => {
@@ -0,0 +1,10 @@
1
+ #!/usr/bin/env node
2
+
3
+ const fs = require("fs");
4
+ const osm2geojson = require('./lib/index.js');
5
+
6
+ const data = fs.readFileSync("/dev/stdin", "utf-8");
7
+
8
+ const geojson = osm2geojson(data, {});
9
+
10
+ process.stdout.write(JSON.stringify(geojson));
package/package.json CHANGED
@@ -19,6 +19,9 @@
19
19
  "/"
20
20
  ],
21
21
  "author": "tibetty",
22
+ "bin": {
23
+ "osm2geojson-lite": "osm2geojson-lite"
24
+ },
22
25
  "bugs": {
23
26
  "url": "https://github.com/tibetty/osm2geojson-lite/issues"
24
27
  },
@@ -56,10 +59,13 @@
56
59
  "@types/geojson": "^1.0.6"
57
60
  },
58
61
  "types": "lib/index.d.ts",
59
- "version": "0.8.16",
62
+ "version": "0.9.0",
60
63
  "directories": {
61
64
  "lib": "lib",
62
65
  "test": "test"
63
66
  },
64
- "devDependencies": {}
67
+ "devDependencies": {
68
+ "browserify": "^17.0.0",
69
+ "uglify-js": "^3.14.5"
70
+ }
65
71
  }