@loaders.gl/mvt 3.0.9 → 3.0.13

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.
Files changed (34) hide show
  1. package/dist/dist.es5.min.js +1 -1
  2. package/dist/dist.es5.min.js.map +1 -1
  3. package/dist/dist.min.js +1 -1
  4. package/dist/dist.min.js.map +1 -1
  5. package/dist/es5/bundle.js +2 -2
  6. package/dist/es5/bundle.js.map +1 -1
  7. package/dist/es5/index.js +2 -2
  8. package/dist/es5/lib/binary-vector-tile/features-to-binary.js +132 -182
  9. package/dist/es5/lib/binary-vector-tile/features-to-binary.js.map +1 -1
  10. package/dist/es5/lib/binary-vector-tile/vector-tile-feature.js +133 -160
  11. package/dist/es5/lib/binary-vector-tile/vector-tile-feature.js.map +1 -1
  12. package/dist/es5/lib/binary-vector-tile/vector-tile-layer.js +15 -23
  13. package/dist/es5/lib/binary-vector-tile/vector-tile-layer.js.map +1 -1
  14. package/dist/es5/lib/binary-vector-tile/vector-tile.js +7 -7
  15. package/dist/es5/lib/binary-vector-tile/vector-tile.js.map +1 -1
  16. package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.js +157 -169
  17. package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.js.map +1 -1
  18. package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.js +15 -23
  19. package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.js.map +1 -1
  20. package/dist/es5/lib/mapbox-vector-tile/vector-tile.js +7 -7
  21. package/dist/es5/lib/mapbox-vector-tile/vector-tile.js.map +1 -1
  22. package/dist/es5/lib/parse-mvt.js +35 -39
  23. package/dist/es5/lib/parse-mvt.js.map +1 -1
  24. package/dist/es5/mvt-loader.js +5 -38
  25. package/dist/es5/mvt-loader.js.map +1 -1
  26. package/dist/esm/lib/binary-vector-tile/vector-tile-feature.js +2 -2
  27. package/dist/esm/lib/binary-vector-tile/vector-tile-feature.js.map +1 -1
  28. package/dist/esm/lib/mapbox-vector-tile/vector-tile-feature.js +3 -3
  29. package/dist/esm/lib/mapbox-vector-tile/vector-tile-feature.js.map +1 -1
  30. package/dist/esm/mvt-loader.js +1 -1
  31. package/dist/esm/mvt-loader.js.map +1 -1
  32. package/dist/mvt-worker.js +1 -1
  33. package/dist/mvt-worker.js.map +1 -1
  34. package/package.json +4 -4
@@ -1,19 +1,16 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
3
  Object.defineProperty(exports, "__esModule", {
6
4
  value: true
7
5
  });
8
6
  exports.default = void 0;
9
7
 
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
+ class VectorTileFeature {
9
+ static get types() {
10
+ return ['Unknown', 'Point', 'LineString', 'Polygon'];
11
+ }
13
12
 
14
- var VectorTileFeature = function () {
15
- function VectorTileFeature(pbf, end, extent, keys, values) {
16
- (0, _classCallCheck2.default)(this, VectorTileFeature);
13
+ constructor(pbf, end, extent, keys, values) {
17
14
  this.properties = {};
18
15
  this.extent = extent;
19
16
  this.type = 0;
@@ -25,193 +22,184 @@ var VectorTileFeature = function () {
25
22
  pbf.readFields(readFeature, this, end);
26
23
  }
27
24
 
28
- (0, _createClass2.default)(VectorTileFeature, [{
29
- key: "loadGeometry",
30
- value: function loadGeometry() {
31
- var pbf = this._pbf;
32
- pbf.pos = this._geometry;
33
- var end = pbf.readVarint() + pbf.pos;
34
- var cmd = 1;
35
- var length = 0;
36
- var x = 0;
37
- var y = 0;
38
- var lines = [];
39
- var line;
40
-
41
- while (pbf.pos < end) {
42
- if (length <= 0) {
43
- var cmdLen = pbf.readVarint();
44
- cmd = cmdLen & 0x7;
45
- length = cmdLen >> 3;
46
- }
25
+ loadGeometry() {
26
+ const pbf = this._pbf;
27
+ pbf.pos = this._geometry;
28
+ const end = pbf.readVarint() + pbf.pos;
29
+ let cmd = 1;
30
+ let length = 0;
31
+ let x = 0;
32
+ let y = 0;
33
+ const lines = [];
34
+ let line;
35
+
36
+ while (pbf.pos < end) {
37
+ if (length <= 0) {
38
+ const cmdLen = pbf.readVarint();
39
+ cmd = cmdLen & 0x7;
40
+ length = cmdLen >> 3;
41
+ }
47
42
 
48
- length--;
43
+ length--;
49
44
 
50
- if (cmd === 1 || cmd === 2) {
51
- x += pbf.readSVarint();
52
- y += pbf.readSVarint();
45
+ if (cmd === 1 || cmd === 2) {
46
+ x += pbf.readSVarint();
47
+ y += pbf.readSVarint();
53
48
 
54
- if (cmd === 1) {
55
- if (line) lines.push(line);
56
- line = [];
57
- }
49
+ if (cmd === 1) {
50
+ if (line) lines.push(line);
51
+ line = [];
52
+ }
58
53
 
59
- line.push([x, y]);
60
- } else if (cmd === 7) {
61
- if (line) {
62
- line.push(line[0].slice());
63
- }
64
- } else {
65
- throw new Error("unknown command ".concat(cmd));
54
+ line.push([x, y]);
55
+ } else if (cmd === 7) {
56
+ if (line) {
57
+ line.push(line[0].slice());
66
58
  }
59
+ } else {
60
+ throw new Error("unknown command ".concat(cmd));
67
61
  }
68
-
69
- if (line) lines.push(line);
70
- return lines;
71
62
  }
72
- }, {
73
- key: "bbox",
74
- value: function bbox() {
75
- var pbf = this._pbf;
76
- pbf.pos = this._geometry;
77
- var end = pbf.readVarint() + pbf.pos;
78
- var cmd = 1;
79
- var length = 0;
80
- var x = 0;
81
- var y = 0;
82
- var x1 = Infinity;
83
- var x2 = -Infinity;
84
- var y1 = Infinity;
85
- var y2 = -Infinity;
86
-
87
- while (pbf.pos < end) {
88
- if (length <= 0) {
89
- var cmdLen = pbf.readVarint();
90
- cmd = cmdLen & 0x7;
91
- length = cmdLen >> 3;
92
- }
93
63
 
94
- length--;
95
-
96
- if (cmd === 1 || cmd === 2) {
97
- x += pbf.readSVarint();
98
- y += pbf.readSVarint();
99
- if (x < x1) x1 = x;
100
- if (x > x2) x2 = x;
101
- if (y < y1) y1 = y;
102
- if (y > y2) y2 = y;
103
- } else if (cmd !== 7) {
104
- throw new Error("unknown command ".concat(cmd));
105
- }
64
+ if (line) lines.push(line);
65
+ return lines;
66
+ }
67
+
68
+ bbox() {
69
+ const pbf = this._pbf;
70
+ pbf.pos = this._geometry;
71
+ const end = pbf.readVarint() + pbf.pos;
72
+ let cmd = 1;
73
+ let length = 0;
74
+ let x = 0;
75
+ let y = 0;
76
+ let x1 = Infinity;
77
+ let x2 = -Infinity;
78
+ let y1 = Infinity;
79
+ let y2 = -Infinity;
80
+
81
+ while (pbf.pos < end) {
82
+ if (length <= 0) {
83
+ const cmdLen = pbf.readVarint();
84
+ cmd = cmdLen & 0x7;
85
+ length = cmdLen >> 3;
106
86
  }
107
87
 
108
- return [x1, y1, x2, y2];
88
+ length--;
89
+
90
+ if (cmd === 1 || cmd === 2) {
91
+ x += pbf.readSVarint();
92
+ y += pbf.readSVarint();
93
+ if (x < x1) x1 = x;
94
+ if (x > x2) x2 = x;
95
+ if (y < y1) y1 = y;
96
+ if (y > y2) y2 = y;
97
+ } else if (cmd !== 7) {
98
+ throw new Error("unknown command ".concat(cmd));
99
+ }
109
100
  }
110
- }, {
111
- key: "_toGeoJSON",
112
- value: function _toGeoJSON(transform) {
113
- var coords = this.loadGeometry();
114
- var type = VectorTileFeature.types[this.type];
115
- var i;
116
- var j;
117
-
118
- switch (this.type) {
119
- case 1:
120
- var points = [];
121
-
122
- for (i = 0; i < coords.length; i++) {
123
- points[i] = coords[i][0];
124
- }
125
101
 
126
- coords = points;
127
- transform(coords, this);
128
- break;
102
+ return [x1, y1, x2, y2];
103
+ }
129
104
 
130
- case 2:
131
- for (i = 0; i < coords.length; i++) {
132
- transform(coords[i], this);
133
- }
105
+ _toGeoJSON(transform) {
106
+ let coords = this.loadGeometry();
107
+ let type = VectorTileFeature.types[this.type];
108
+ let i;
109
+ let j;
134
110
 
135
- break;
111
+ switch (this.type) {
112
+ case 1:
113
+ var points = [];
136
114
 
137
- case 3:
138
- coords = classifyRings(coords);
115
+ for (i = 0; i < coords.length; i++) {
116
+ points[i] = coords[i][0];
117
+ }
139
118
 
140
- for (i = 0; i < coords.length; i++) {
141
- for (j = 0; j < coords[i].length; j++) {
142
- transform(coords[i][j], this);
143
- }
144
- }
119
+ coords = points;
120
+ transform(coords, this);
121
+ break;
145
122
 
146
- break;
147
- }
123
+ case 2:
124
+ for (i = 0; i < coords.length; i++) {
125
+ transform(coords[i], this);
126
+ }
148
127
 
149
- if (coords.length === 1) {
150
- coords = coords[0];
151
- } else {
152
- type = "Multi".concat(type);
153
- }
128
+ break;
154
129
 
155
- var result = {
156
- type: 'Feature',
157
- geometry: {
158
- type: type,
159
- coordinates: coords
160
- },
161
- properties: this.properties
162
- };
163
-
164
- if (this.id !== null) {
165
- result.id = this.id;
166
- }
130
+ case 3:
131
+ coords = classifyRings(coords);
132
+
133
+ for (i = 0; i < coords.length; i++) {
134
+ for (j = 0; j < coords[i].length; j++) {
135
+ transform(coords[i][j], this);
136
+ }
137
+ }
167
138
 
168
- return result;
139
+ break;
169
140
  }
170
- }, {
171
- key: "toGeoJSON",
172
- value: function toGeoJSON(options) {
173
- if (typeof options === 'function') {
174
- return this._toGeoJSON(options);
175
- }
176
141
 
177
- var x = options.x,
178
- y = options.y,
179
- z = options.z;
180
- var size = this.extent * Math.pow(2, z);
181
- var x0 = this.extent * x;
182
- var y0 = this.extent * y;
183
-
184
- function project(line) {
185
- for (var j = 0; j < line.length; j++) {
186
- var p = line[j];
187
- p[0] = (p[0] + x0) * 360 / size - 180;
188
- var y2 = 180 - (p[1] + y0) * 360 / size;
189
- p[1] = 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90;
190
- }
191
- }
142
+ if (coords.length === 1) {
143
+ coords = coords[0];
144
+ } else {
145
+ type = "Multi".concat(type);
146
+ }
192
147
 
193
- return this._toGeoJSON(project);
148
+ const result = {
149
+ type: 'Feature',
150
+ geometry: {
151
+ type,
152
+ coordinates: coords
153
+ },
154
+ properties: this.properties
155
+ };
156
+
157
+ if (this.id !== null) {
158
+ result.id = this.id;
194
159
  }
195
- }], [{
196
- key: "types",
197
- get: function get() {
198
- return ['Unknown', 'Point', 'LineString', 'Polygon'];
160
+
161
+ return result;
162
+ }
163
+
164
+ toGeoJSON(options) {
165
+ if (typeof options === 'function') {
166
+ return this._toGeoJSON(options);
167
+ }
168
+
169
+ const {
170
+ x,
171
+ y,
172
+ z
173
+ } = options;
174
+ const size = this.extent * Math.pow(2, z);
175
+ const x0 = this.extent * x;
176
+ const y0 = this.extent * y;
177
+
178
+ function project(line) {
179
+ for (let j = 0; j < line.length; j++) {
180
+ const p = line[j];
181
+ p[0] = (p[0] + x0) * 360 / size - 180;
182
+ const y2 = 180 - (p[1] + y0) * 360 / size;
183
+ p[1] = 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90;
184
+ }
199
185
  }
200
- }]);
201
- return VectorTileFeature;
202
- }();
186
+
187
+ return this._toGeoJSON(project);
188
+ }
189
+
190
+ }
203
191
 
204
192
  exports.default = VectorTileFeature;
205
193
 
206
194
  function classifyRings(rings) {
207
- var len = rings.length;
195
+ const len = rings.length;
208
196
  if (len <= 1) return [rings];
209
- var polygons = [];
210
- var polygon;
211
- var ccw;
197
+ const polygons = [];
198
+ let polygon;
199
+ let ccw;
212
200
 
213
- for (var i = 0; i < len; i++) {
214
- var area = signedArea(rings[i]);
201
+ for (let i = 0; i < len; i++) {
202
+ const area = signedArea(rings[i]);
215
203
  if (area === 0) continue;
216
204
  if (ccw === undefined) ccw = area < 0;
217
205
 
@@ -228,9 +216,9 @@ function classifyRings(rings) {
228
216
  }
229
217
 
230
218
  function signedArea(ring) {
231
- var sum = 0;
219
+ let sum = 0;
232
220
 
233
- for (var i = 0, j = ring.length - 1, p1, p2; i < ring.length; j = i++) {
221
+ for (let i = 0, j = ring.length - 1, p1, p2; i < ring.length; j = i++) {
234
222
  p1 = ring[i];
235
223
  p2 = ring[j];
236
224
  sum += (p2[0] - p1[0]) * (p1[1] + p2[1]);
@@ -244,12 +232,12 @@ function readFeature(tag, feature, pbf) {
244
232
  }
245
233
 
246
234
  function readTag(pbf, feature) {
247
- var end = pbf.readVarint() + pbf.pos;
235
+ const end = pbf.readVarint() + pbf.pos;
248
236
 
249
237
  while (pbf.pos < end) {
250
- var key = feature._keys[pbf.readVarint()];
238
+ const key = feature._keys[pbf.readVarint()];
251
239
 
252
- var value = feature._values[pbf.readVarint()];
240
+ const value = feature._values[pbf.readVarint()];
253
241
 
254
242
  feature.properties[key] = value;
255
243
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/mapbox-vector-tile/vector-tile-feature.js"],"names":["VectorTileFeature","pbf","end","extent","keys","values","properties","type","id","_pbf","_geometry","_keys","_values","readFields","readFeature","pos","readVarint","cmd","length","x","y","lines","line","cmdLen","readSVarint","push","slice","Error","x1","Infinity","x2","y1","y2","transform","coords","loadGeometry","types","i","j","points","classifyRings","result","geometry","coordinates","options","_toGeoJSON","z","size","Math","pow","x0","y0","project","p","PI","atan","exp","rings","len","polygons","polygon","ccw","area","signedArea","undefined","ring","sum","p1","p2","tag","feature","readTag","key","value"],"mappings":"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","sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\n/* eslint-disable */\n\nexport default class VectorTileFeature {\n static get types() {\n return ['Unknown', 'Point', 'LineString', 'Polygon'];\n }\n\n constructor(pbf, end, extent, keys, values) {\n // Public\n this.properties = {};\n this.extent = extent;\n this.type = 0;\n this.id = null;\n\n // Private\n this._pbf = pbf;\n this._geometry = -1;\n this._keys = keys;\n this._values = values;\n\n pbf.readFields(readFeature, this, end);\n }\n\n // eslint-disable-next-line complexity, max-statements\n loadGeometry() {\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n const end = pbf.readVarint() + pbf.pos;\n let cmd = 1;\n let length = 0;\n let x = 0;\n let y = 0;\n const lines = [];\n let line;\n\n while (pbf.pos < end) {\n if (length <= 0) {\n const cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n\n if (cmd === 1) {\n // moveTo\n if (line) lines.push(line);\n line = [];\n }\n // @ts-ignore\n line.push([x, y]);\n } else if (cmd === 7) {\n // Workaround for https://github.com/mapbox/mapnik-vector-tile/issues/90\n if (line) {\n line.push(line[0].slice()); // closePolygon\n }\n } else {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n if (line) lines.push(line);\n\n return lines;\n }\n\n // eslint-disable-next-line max-statements\n bbox() {\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n const end = pbf.readVarint() + pbf.pos;\n let cmd = 1;\n let length = 0;\n let x = 0;\n let y = 0;\n let x1 = Infinity;\n let x2 = -Infinity;\n let y1 = Infinity;\n let y2 = -Infinity;\n\n while (pbf.pos < end) {\n if (length <= 0) {\n const cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n if (x < x1) x1 = x;\n if (x > x2) x2 = x;\n if (y < y1) y1 = y;\n if (y > y2) y2 = y;\n } else if (cmd !== 7) {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n return [x1, y1, x2, y2];\n }\n\n _toGeoJSON(transform) {\n let coords = this.loadGeometry();\n let type = VectorTileFeature.types[this.type];\n let i;\n let j;\n\n switch (this.type) {\n case 1:\n var points = [];\n for (i = 0; i < coords.length; i++) {\n points[i] = coords[i][0];\n }\n coords = points;\n transform(coords, this);\n break;\n\n case 2:\n for (i = 0; i < coords.length; i++) {\n transform(coords[i], this);\n }\n break;\n\n case 3:\n coords = classifyRings(coords);\n for (i = 0; i < coords.length; i++) {\n for (j = 0; j < coords[i].length; j++) {\n transform(coords[i][j], this);\n }\n }\n break;\n }\n\n if (coords.length === 1) {\n coords = coords[0];\n } else {\n type = `Multi${type}`;\n }\n\n const result = {\n type: 'Feature',\n geometry: {\n type,\n coordinates: coords\n },\n properties: this.properties\n };\n\n if (this.id !== null) {\n result.id = this.id;\n }\n\n return result;\n }\n\n toGeoJSON(options) {\n if (typeof options === 'function') {\n return this._toGeoJSON(options);\n }\n const {x, y, z} = options;\n const size = this.extent * Math.pow(2, z);\n const x0 = this.extent * x;\n const y0 = this.extent * y;\n\n function project(line) {\n for (let j = 0; j < line.length; j++) {\n const p = line[j];\n p[0] = ((p[0] + x0) * 360) / size - 180;\n const y2 = 180 - ((p[1] + y0) * 360) / size;\n p[1] = (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;\n }\n }\n return this._toGeoJSON(project);\n }\n}\n\n/**\n * Classifies an array of rings into polygons with outer rings and holes\n */\n\nfunction classifyRings(rings) {\n const len = rings.length;\n\n if (len <= 1) return [rings];\n\n const polygons = [];\n let polygon;\n let ccw;\n\n for (let i = 0; i < len; i++) {\n const area = signedArea(rings[i]);\n if (area === 0) continue;\n\n if (ccw === undefined) ccw = area < 0;\n\n if (ccw === area < 0) {\n if (polygon) polygons.push(polygon);\n polygon = [rings[i]];\n } else {\n // @ts-ignore\n polygon.push(rings[i]);\n }\n }\n if (polygon) polygons.push(polygon);\n\n return polygons;\n}\n\nfunction signedArea(ring) {\n let sum = 0;\n for (let i = 0, j = ring.length - 1, p1, p2; i < ring.length; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n sum += (p2[0] - p1[0]) * (p1[1] + p2[1]);\n }\n return sum;\n}\n\nfunction readFeature(tag, feature, pbf) {\n if (tag === 1) feature.id = pbf.readVarint();\n else if (tag === 2) readTag(pbf, feature);\n else if (tag === 3) feature.type = pbf.readVarint();\n else if (tag === 4) feature._geometry = pbf.pos;\n}\n\nfunction readTag(pbf, feature) {\n const end = pbf.readVarint() + pbf.pos;\n\n while (pbf.pos < end) {\n const key = feature._keys[pbf.readVarint()];\n const value = feature._values[pbf.readVarint()];\n feature.properties[key] = value;\n }\n}\n"],"file":"vector-tile-feature.js"}
1
+ {"version":3,"sources":["../../../../src/lib/mapbox-vector-tile/vector-tile-feature.js"],"names":["VectorTileFeature","types","constructor","pbf","end","extent","keys","values","properties","type","id","_pbf","_geometry","_keys","_values","readFields","readFeature","loadGeometry","pos","readVarint","cmd","length","x","y","lines","line","cmdLen","readSVarint","push","slice","Error","bbox","x1","Infinity","x2","y1","y2","_toGeoJSON","transform","coords","i","j","points","classifyRings","result","geometry","coordinates","toGeoJSON","options","z","size","Math","pow","x0","y0","project","p","PI","atan","exp","rings","len","polygons","polygon","ccw","area","signedArea","undefined","ring","sum","p1","p2","tag","feature","readTag","key","value"],"mappings":"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","sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\n/* eslint-disable */\n\nexport default class VectorTileFeature {\n static get types() {\n return ['Unknown', 'Point', 'LineString', 'Polygon'];\n }\n\n constructor(pbf, end, extent, keys, values) {\n // Public\n this.properties = {};\n this.extent = extent;\n this.type = 0;\n this.id = null;\n\n // Private\n this._pbf = pbf;\n this._geometry = -1;\n this._keys = keys;\n this._values = values;\n\n pbf.readFields(readFeature, this, end);\n }\n\n // eslint-disable-next-line complexity, max-statements\n loadGeometry() {\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n const end = pbf.readVarint() + pbf.pos;\n let cmd = 1;\n let length = 0;\n let x = 0;\n let y = 0;\n const lines = [];\n let line;\n\n while (pbf.pos < end) {\n if (length <= 0) {\n const cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n\n if (cmd === 1) {\n // moveTo\n if (line) lines.push(line);\n line = [];\n }\n // @ts-ignore\n line.push([x, y]);\n } else if (cmd === 7) {\n // Workaround for https://github.com/mapbox/mapnik-vector-tile/issues/90\n if (line) {\n line.push(line[0].slice()); // closePolygon\n }\n } else {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n if (line) lines.push(line);\n\n return lines;\n }\n\n // eslint-disable-next-line max-statements\n bbox() {\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n const end = pbf.readVarint() + pbf.pos;\n let cmd = 1;\n let length = 0;\n let x = 0;\n let y = 0;\n let x1 = Infinity;\n let x2 = -Infinity;\n let y1 = Infinity;\n let y2 = -Infinity;\n\n while (pbf.pos < end) {\n if (length <= 0) {\n const cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n if (x < x1) x1 = x;\n if (x > x2) x2 = x;\n if (y < y1) y1 = y;\n if (y > y2) y2 = y;\n } else if (cmd !== 7) {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n return [x1, y1, x2, y2];\n }\n\n _toGeoJSON(transform) {\n let coords = this.loadGeometry();\n let type = VectorTileFeature.types[this.type];\n let i;\n let j;\n\n switch (this.type) {\n case 1:\n var points = [];\n for (i = 0; i < coords.length; i++) {\n points[i] = coords[i][0];\n }\n coords = points;\n transform(coords, this);\n break;\n\n case 2:\n for (i = 0; i < coords.length; i++) {\n transform(coords[i], this);\n }\n break;\n\n case 3:\n coords = classifyRings(coords);\n for (i = 0; i < coords.length; i++) {\n for (j = 0; j < coords[i].length; j++) {\n transform(coords[i][j], this);\n }\n }\n break;\n }\n\n if (coords.length === 1) {\n coords = coords[0];\n } else {\n type = `Multi${type}`;\n }\n\n const result = {\n type: 'Feature',\n geometry: {\n type,\n coordinates: coords\n },\n properties: this.properties\n };\n\n if (this.id !== null) {\n result.id = this.id;\n }\n\n return result;\n }\n\n toGeoJSON(options) {\n if (typeof options === 'function') {\n return this._toGeoJSON(options);\n }\n const {x, y, z} = options;\n const size = this.extent * Math.pow(2, z);\n const x0 = this.extent * x;\n const y0 = this.extent * y;\n\n function project(line) {\n for (let j = 0; j < line.length; j++) {\n const p = line[j];\n p[0] = ((p[0] + x0) * 360) / size - 180;\n const y2 = 180 - ((p[1] + y0) * 360) / size;\n p[1] = (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;\n }\n }\n return this._toGeoJSON(project);\n }\n}\n\n/**\n * Classifies an array of rings into polygons with outer rings and holes\n */\n\nfunction classifyRings(rings) {\n const len = rings.length;\n\n if (len <= 1) return [rings];\n\n const polygons = [];\n let polygon;\n let ccw;\n\n for (let i = 0; i < len; i++) {\n const area = signedArea(rings[i]);\n if (area === 0) continue;\n\n if (ccw === undefined) ccw = area < 0;\n\n if (ccw === area < 0) {\n if (polygon) polygons.push(polygon);\n polygon = [rings[i]];\n } else {\n // @ts-ignore\n polygon.push(rings[i]);\n }\n }\n if (polygon) polygons.push(polygon);\n\n return polygons;\n}\n\nfunction signedArea(ring) {\n let sum = 0;\n for (let i = 0, j = ring.length - 1, p1, p2; i < ring.length; j = i++) {\n p1 = ring[i];\n p2 = ring[j];\n sum += (p2[0] - p1[0]) * (p1[1] + p2[1]);\n }\n return sum;\n}\n\nfunction readFeature(tag, feature, pbf) {\n if (tag === 1) feature.id = pbf.readVarint();\n else if (tag === 2) readTag(pbf, feature);\n else if (tag === 3) feature.type = pbf.readVarint();\n else if (tag === 4) feature._geometry = pbf.pos;\n}\n\nfunction readTag(pbf, feature) {\n const end = pbf.readVarint() + pbf.pos;\n\n while (pbf.pos < end) {\n const key = feature._keys[pbf.readVarint()];\n const value = feature._values[pbf.readVarint()];\n feature.properties[key] = value;\n }\n}\n"],"file":"vector-tile-feature.js"}
@@ -7,15 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
-
14
10
  var _vectorTileFeature = _interopRequireDefault(require("./vector-tile-feature.js"));
15
11
 
16
- var VectorTileLayer = function () {
17
- function VectorTileLayer(pbf, end) {
18
- (0, _classCallCheck2.default)(this, VectorTileLayer);
12
+ class VectorTileLayer {
13
+ constructor(pbf, end) {
19
14
  this.version = 1;
20
15
  this.name = null;
21
16
  this.extent = 4096;
@@ -28,22 +23,19 @@ var VectorTileLayer = function () {
28
23
  this.length = this._features.length;
29
24
  }
30
25
 
31
- (0, _createClass2.default)(VectorTileLayer, [{
32
- key: "feature",
33
- value: function feature(i) {
34
- if (i < 0 || i >= this._features.length) {
35
- throw new Error('feature index out of bounds');
36
- }
26
+ feature(i) {
27
+ if (i < 0 || i >= this._features.length) {
28
+ throw new Error('feature index out of bounds');
29
+ }
37
30
 
38
- this._pbf.pos = this._features[i];
31
+ this._pbf.pos = this._features[i];
39
32
 
40
- var end = this._pbf.readVarint() + this._pbf.pos;
33
+ const end = this._pbf.readVarint() + this._pbf.pos;
41
34
 
42
- return new _vectorTileFeature.default(this._pbf, end, this.extent, this._keys, this._values);
43
- }
44
- }]);
45
- return VectorTileLayer;
46
- }();
35
+ return new _vectorTileFeature.default(this._pbf, end, this.extent, this._keys, this._values);
36
+ }
37
+
38
+ }
47
39
 
48
40
  exports.default = VectorTileLayer;
49
41
 
@@ -52,11 +44,11 @@ function readLayer(tag, layer, pbf) {
52
44
  }
53
45
 
54
46
  function readValueMessage(pbf) {
55
- var value = null;
56
- var end = pbf.readVarint() + pbf.pos;
47
+ let value = null;
48
+ const end = pbf.readVarint() + pbf.pos;
57
49
 
58
50
  while (pbf.pos < end) {
59
- var tag = pbf.readVarint() >> 3;
51
+ const tag = pbf.readVarint() >> 3;
60
52
  value = tag === 1 ? pbf.readString() : tag === 2 ? pbf.readFloat() : tag === 3 ? pbf.readDouble() : tag === 4 ? pbf.readVarint64() : tag === 5 ? pbf.readVarint() : tag === 6 ? pbf.readSVarint() : tag === 7 ? pbf.readBoolean() : null;
61
53
  }
62
54
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/mapbox-vector-tile/vector-tile-layer.js"],"names":["VectorTileLayer","pbf","end","version","name","extent","length","_pbf","_keys","_values","_features","readFields","readLayer","i","Error","pos","readVarint","VectorTileFeature","tag","layer","readString","push","readValueMessage","value","readFloat","readDouble","readVarint64","readSVarint","readBoolean"],"mappings":";;;;;;;;;;;;;AAEA;;IAEqBA,e;AACnB,2BAAYC,GAAZ,EAAiBC,GAAjB,EAAsB;AAAA;AAEpB,SAAKC,OAAL,GAAe,CAAf;AACA,SAAKC,IAAL,GAAY,IAAZ;AACA,SAAKC,MAAL,GAAc,IAAd;AACA,SAAKC,MAAL,GAAc,CAAd;AAGA,SAAKC,IAAL,GAAYN,GAAZ;AACA,SAAKO,KAAL,GAAa,EAAb;AACA,SAAKC,OAAL,GAAe,EAAf;AACA,SAAKC,SAAL,GAAiB,EAAjB;AAEAT,IAAAA,GAAG,CAACU,UAAJ,CAAeC,SAAf,EAA0B,IAA1B,EAAgCV,GAAhC;AAEA,SAAKI,MAAL,GAAc,KAAKI,SAAL,CAAeJ,MAA7B;AACD;;;;WAGD,iBAAQO,CAAR,EAAW;AACT,UAAIA,CAAC,GAAG,CAAJ,IAASA,CAAC,IAAI,KAAKH,SAAL,CAAeJ,MAAjC,EAAyC;AACvC,cAAM,IAAIQ,KAAJ,CAAU,6BAAV,CAAN;AACD;;AAED,WAAKP,IAAL,CAAUQ,GAAV,GAAgB,KAAKL,SAAL,CAAeG,CAAf,CAAhB;;AAEA,UAAMX,GAAG,GAAG,KAAKK,IAAL,CAAUS,UAAV,KAAyB,KAAKT,IAAL,CAAUQ,GAA/C;;AACA,aAAO,IAAIE,0BAAJ,CAAsB,KAAKV,IAA3B,EAAiCL,GAAjC,EAAsC,KAAKG,MAA3C,EAAmD,KAAKG,KAAxD,EAA+D,KAAKC,OAApE,CAAP;AACD;;;;;;;AAGH,SAASG,SAAT,CAAmBM,GAAnB,EAAwBC,KAAxB,EAA+BlB,GAA/B,EAAoC;AAClC,MAAIiB,GAAG,KAAK,EAAZ,EAAgBC,KAAK,CAAChB,OAAN,GAAgBF,GAAG,CAACe,UAAJ,EAAhB,CAAhB,KACK,IAAIE,GAAG,KAAK,CAAZ,EAAeC,KAAK,CAACf,IAAN,GAAaH,GAAG,CAACmB,UAAJ,EAAb,CAAf,KACA,IAAIF,GAAG,KAAK,CAAZ,EAAeC,KAAK,CAACd,MAAN,GAAeJ,GAAG,CAACe,UAAJ,EAAf,CAAf,KACA,IAAIE,GAAG,KAAK,CAAZ,EAAeC,KAAK,CAACT,SAAN,CAAgBW,IAAhB,CAAqBpB,GAAG,CAACc,GAAzB,EAAf,KACA,IAAIG,GAAG,KAAK,CAAZ,EAAeC,KAAK,CAACX,KAAN,CAAYa,IAAZ,CAAiBpB,GAAG,CAACmB,UAAJ,EAAjB,EAAf,KACA,IAAIF,GAAG,KAAK,CAAZ,EAAeC,KAAK,CAACV,OAAN,CAAcY,IAAd,CAAmBC,gBAAgB,CAACrB,GAAD,CAAnC;AACrB;;AAED,SAASqB,gBAAT,CAA0BrB,GAA1B,EAA+B;AAC7B,MAAIsB,KAAK,GAAG,IAAZ;AACA,MAAMrB,GAAG,GAAGD,GAAG,CAACe,UAAJ,KAAmBf,GAAG,CAACc,GAAnC;;AAEA,SAAOd,GAAG,CAACc,GAAJ,GAAUb,GAAjB,EAAsB;AACpB,QAAMgB,GAAG,GAAGjB,GAAG,CAACe,UAAJ,MAAoB,CAAhC;AAEAO,IAAAA,KAAK,GACHL,GAAG,KAAK,CAAR,GACIjB,GAAG,CAACmB,UAAJ,EADJ,GAEIF,GAAG,KAAK,CAAR,GACAjB,GAAG,CAACuB,SAAJ,EADA,GAEAN,GAAG,KAAK,CAAR,GACAjB,GAAG,CAACwB,UAAJ,EADA,GAEAP,GAAG,KAAK,CAAR,GACAjB,GAAG,CAACyB,YAAJ,EADA,GAEAR,GAAG,KAAK,CAAR,GACAjB,GAAG,CAACe,UAAJ,EADA,GAEAE,GAAG,KAAK,CAAR,GACAjB,GAAG,CAAC0B,WAAJ,EADA,GAEAT,GAAG,KAAK,CAAR,GACAjB,GAAG,CAAC2B,WAAJ,EADA,GAEA,IAfN;AAgBD;;AAED,SAAOL,KAAP;AACD","sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\n\nimport VectorTileFeature from './vector-tile-feature.js';\n\nexport default class VectorTileLayer {\n constructor(pbf, end) {\n // Public\n this.version = 1;\n this.name = null;\n this.extent = 4096;\n this.length = 0;\n\n // Private\n this._pbf = pbf;\n this._keys = [];\n this._values = [];\n this._features = [];\n\n pbf.readFields(readLayer, this, end);\n\n this.length = this._features.length;\n }\n\n // return feature `i` from this layer as a `VectorTileFeature`\n feature(i) {\n if (i < 0 || i >= this._features.length) {\n throw new Error('feature index out of bounds');\n }\n\n this._pbf.pos = this._features[i];\n\n const end = this._pbf.readVarint() + this._pbf.pos;\n return new VectorTileFeature(this._pbf, end, this.extent, this._keys, this._values);\n }\n}\n\nfunction readLayer(tag, layer, pbf) {\n if (tag === 15) layer.version = pbf.readVarint();\n else if (tag === 1) layer.name = pbf.readString();\n else if (tag === 5) layer.extent = pbf.readVarint();\n else if (tag === 2) layer._features.push(pbf.pos);\n else if (tag === 3) layer._keys.push(pbf.readString());\n else if (tag === 4) layer._values.push(readValueMessage(pbf));\n}\n\nfunction readValueMessage(pbf) {\n let value = null;\n const end = pbf.readVarint() + pbf.pos;\n\n while (pbf.pos < end) {\n const tag = pbf.readVarint() >> 3;\n\n value =\n tag === 1\n ? pbf.readString()\n : tag === 2\n ? pbf.readFloat()\n : tag === 3\n ? pbf.readDouble()\n : tag === 4\n ? pbf.readVarint64()\n : tag === 5\n ? pbf.readVarint()\n : tag === 6\n ? pbf.readSVarint()\n : tag === 7\n ? pbf.readBoolean()\n : null;\n }\n\n return value;\n}\n"],"file":"vector-tile-layer.js"}
1
+ {"version":3,"sources":["../../../../src/lib/mapbox-vector-tile/vector-tile-layer.js"],"names":["VectorTileLayer","constructor","pbf","end","version","name","extent","length","_pbf","_keys","_values","_features","readFields","readLayer","feature","i","Error","pos","readVarint","VectorTileFeature","tag","layer","readString","push","readValueMessage","value","readFloat","readDouble","readVarint64","readSVarint","readBoolean"],"mappings":"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","sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\n\nimport VectorTileFeature from './vector-tile-feature.js';\n\nexport default class VectorTileLayer {\n constructor(pbf, end) {\n // Public\n this.version = 1;\n this.name = null;\n this.extent = 4096;\n this.length = 0;\n\n // Private\n this._pbf = pbf;\n this._keys = [];\n this._values = [];\n this._features = [];\n\n pbf.readFields(readLayer, this, end);\n\n this.length = this._features.length;\n }\n\n // return feature `i` from this layer as a `VectorTileFeature`\n feature(i) {\n if (i < 0 || i >= this._features.length) {\n throw new Error('feature index out of bounds');\n }\n\n this._pbf.pos = this._features[i];\n\n const end = this._pbf.readVarint() + this._pbf.pos;\n return new VectorTileFeature(this._pbf, end, this.extent, this._keys, this._values);\n }\n}\n\nfunction readLayer(tag, layer, pbf) {\n if (tag === 15) layer.version = pbf.readVarint();\n else if (tag === 1) layer.name = pbf.readString();\n else if (tag === 5) layer.extent = pbf.readVarint();\n else if (tag === 2) layer._features.push(pbf.pos);\n else if (tag === 3) layer._keys.push(pbf.readString());\n else if (tag === 4) layer._values.push(readValueMessage(pbf));\n}\n\nfunction readValueMessage(pbf) {\n let value = null;\n const end = pbf.readVarint() + pbf.pos;\n\n while (pbf.pos < end) {\n const tag = pbf.readVarint() >> 3;\n\n value =\n tag === 1\n ? pbf.readString()\n : tag === 2\n ? pbf.readFloat()\n : tag === 3\n ? pbf.readDouble()\n : tag === 4\n ? pbf.readVarint64()\n : tag === 5\n ? pbf.readVarint()\n : tag === 6\n ? pbf.readSVarint()\n : tag === 7\n ? pbf.readBoolean()\n : null;\n }\n\n return value;\n}\n"],"file":"vector-tile-layer.js"}
@@ -7,20 +7,20 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
-
12
10
  var _vectorTileLayer = _interopRequireDefault(require("./vector-tile-layer"));
13
11
 
14
- var VectorTile = function VectorTile(pbf, end) {
15
- (0, _classCallCheck2.default)(this, VectorTile);
16
- this.layers = pbf.readFields(readTile, {}, end);
17
- };
12
+ class VectorTile {
13
+ constructor(pbf, end) {
14
+ this.layers = pbf.readFields(readTile, {}, end);
15
+ }
16
+
17
+ }
18
18
 
19
19
  exports.default = VectorTile;
20
20
 
21
21
  function readTile(tag, layers, pbf) {
22
22
  if (tag === 3) {
23
- var layer = new _vectorTileLayer.default(pbf, pbf.readVarint() + pbf.pos);
23
+ const layer = new _vectorTileLayer.default(pbf, pbf.readVarint() + pbf.pos);
24
24
 
25
25
  if (layer.length) {
26
26
  layers[layer.name] = layer;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/mapbox-vector-tile/vector-tile.js"],"names":["VectorTile","pbf","end","layers","readFields","readTile","tag","layer","VectorTileLayer","readVarint","pos","length","name"],"mappings":";;;;;;;;;;;AAEA;;IAEqBA,U,GACnB,oBAAYC,GAAZ,EAAiBC,GAAjB,EAAsB;AAAA;AACpB,OAAKC,MAAL,GAAcF,GAAG,CAACG,UAAJ,CAAeC,QAAf,EAAyB,EAAzB,EAA6BH,GAA7B,CAAd;AACD,C;;;;AAGH,SAASG,QAAT,CAAkBC,GAAlB,EAAuBH,MAAvB,EAA+BF,GAA/B,EAAoC;AAClC,MAAIK,GAAG,KAAK,CAAZ,EAAe;AACb,QAAMC,KAAK,GAAG,IAAIC,wBAAJ,CAAoBP,GAApB,EAAyBA,GAAG,CAACQ,UAAJ,KAAmBR,GAAG,CAACS,GAAhD,CAAd;;AACA,QAAIH,KAAK,CAACI,MAAV,EAAkB;AAChBR,MAAAA,MAAM,CAACI,KAAK,CAACK,IAAP,CAAN,GAAqBL,KAArB;AACD;AACF;AACF","sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\n\nimport VectorTileLayer from './vector-tile-layer';\n\nexport default class VectorTile {\n constructor(pbf, end) {\n this.layers = pbf.readFields(readTile, {}, end);\n }\n}\n\nfunction readTile(tag, layers, pbf) {\n if (tag === 3) {\n const layer = new VectorTileLayer(pbf, pbf.readVarint() + pbf.pos);\n if (layer.length) {\n layers[layer.name] = layer;\n }\n }\n}\n"],"file":"vector-tile.js"}
1
+ {"version":3,"sources":["../../../../src/lib/mapbox-vector-tile/vector-tile.js"],"names":["VectorTile","constructor","pbf","end","layers","readFields","readTile","tag","layer","VectorTileLayer","readVarint","pos","length","name"],"mappings":";;;;;;;;;AAEA;;AAEe,MAAMA,UAAN,CAAiB;AAC9BC,EAAAA,WAAW,CAACC,GAAD,EAAMC,GAAN,EAAW;AACpB,SAAKC,MAAL,GAAcF,GAAG,CAACG,UAAJ,CAAeC,QAAf,EAAyB,EAAzB,EAA6BH,GAA7B,CAAd;AACD;;AAH6B;;;;AAMhC,SAASG,QAAT,CAAkBC,GAAlB,EAAuBH,MAAvB,EAA+BF,GAA/B,EAAoC;AAClC,MAAIK,GAAG,KAAK,CAAZ,EAAe;AACb,UAAMC,KAAK,GAAG,IAAIC,wBAAJ,CAAoBP,GAApB,EAAyBA,GAAG,CAACQ,UAAJ,KAAmBR,GAAG,CAACS,GAAhD,CAAd;;AACA,QAAIH,KAAK,CAACI,MAAV,EAAkB;AAChBR,MAAAA,MAAM,CAACI,KAAK,CAACK,IAAP,CAAN,GAAqBL,KAArB;AACD;AACF;AACF","sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\n\nimport VectorTileLayer from './vector-tile-layer';\n\nexport default class VectorTile {\n constructor(pbf, end) {\n this.layers = pbf.readFields(readTile, {}, end);\n }\n}\n\nfunction readTile(tag, layers, pbf) {\n if (tag === 3) {\n const layer = new VectorTileLayer(pbf, pbf.readVarint() + pbf.pos);\n if (layer.length) {\n layers[layer.name] = layer;\n }\n }\n}\n"],"file":"vector-tile.js"}