@loaders.gl/mvt 3.0.13 → 3.0.14

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 (29) 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 +182 -132
  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 +160 -133
  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 +23 -15
  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 +169 -157
  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 +23 -15
  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 +39 -35
  23. package/dist/es5/lib/parse-mvt.js.map +1 -1
  24. package/dist/es5/mvt-loader.js +38 -5
  25. package/dist/es5/mvt-loader.js.map +1 -1
  26. package/dist/esm/mvt-loader.js +1 -1
  27. package/dist/mvt-worker.js +1 -1
  28. package/dist/mvt-worker.js.map +1 -1
  29. package/package.json +4 -4
@@ -1,16 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
3
5
  Object.defineProperty(exports, "__esModule", {
4
6
  value: true
5
7
  });
6
8
  exports.default = void 0;
7
9
 
8
- class VectorTileFeature {
9
- static get types() {
10
- return ['Unknown', 'Point', 'LineString', 'Polygon'];
11
- }
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
12
13
 
13
- constructor(pbf, end, extent, keys, values) {
14
+ var VectorTileFeature = function () {
15
+ function VectorTileFeature(pbf, end, extent, keys, values) {
16
+ (0, _classCallCheck2.default)(this, VectorTileFeature);
14
17
  this.properties = {};
15
18
  this.extent = extent;
16
19
  this.type = 0;
@@ -22,184 +25,193 @@ class VectorTileFeature {
22
25
  pbf.readFields(readFeature, this, end);
23
26
  }
24
27
 
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
- }
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
+ }
42
47
 
43
- length--;
48
+ length--;
44
49
 
45
- if (cmd === 1 || cmd === 2) {
46
- x += pbf.readSVarint();
47
- y += pbf.readSVarint();
50
+ if (cmd === 1 || cmd === 2) {
51
+ x += pbf.readSVarint();
52
+ y += pbf.readSVarint();
48
53
 
49
- if (cmd === 1) {
50
- if (line) lines.push(line);
51
- line = [];
52
- }
54
+ if (cmd === 1) {
55
+ if (line) lines.push(line);
56
+ line = [];
57
+ }
53
58
 
54
- line.push([x, y]);
55
- } else if (cmd === 7) {
56
- if (line) {
57
- line.push(line[0].slice());
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));
58
66
  }
59
- } else {
60
- throw new Error("unknown command ".concat(cmd));
61
- }
62
- }
63
-
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;
86
67
  }
87
68
 
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
- }
69
+ if (line) lines.push(line);
70
+ return lines;
100
71
  }
101
-
102
- return [x1, y1, x2, y2];
103
- }
104
-
105
- _toGeoJSON(transform) {
106
- let coords = this.loadGeometry();
107
- let type = VectorTileFeature.types[this.type];
108
- let i;
109
- let j;
110
-
111
- switch (this.type) {
112
- case 1:
113
- var points = [];
114
-
115
- for (i = 0; i < coords.length; i++) {
116
- points[i] = coords[i][0];
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;
117
92
  }
118
93
 
119
- coords = points;
120
- transform(coords, this);
121
- break;
122
-
123
- case 2:
124
- for (i = 0; i < coords.length; i++) {
125
- transform(coords[i], this);
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));
126
105
  }
106
+ }
127
107
 
128
- break;
108
+ return [x1, y1, x2, y2];
109
+ }
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
+ }
129
125
 
130
- case 3:
131
- coords = classifyRings(coords);
126
+ coords = points;
127
+ transform(coords, this);
128
+ break;
132
129
 
133
- for (i = 0; i < coords.length; i++) {
134
- for (j = 0; j < coords[i].length; j++) {
135
- transform(coords[i][j], this);
130
+ case 2:
131
+ for (i = 0; i < coords.length; i++) {
132
+ transform(coords[i], this);
136
133
  }
137
- }
138
134
 
139
- break;
140
- }
135
+ break;
141
136
 
142
- if (coords.length === 1) {
143
- coords = coords[0];
144
- } else {
145
- type = "Multi".concat(type);
146
- }
137
+ case 3:
138
+ coords = classifyRings(coords);
147
139
 
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;
159
- }
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
+ }
160
145
 
161
- return result;
162
- }
146
+ break;
147
+ }
163
148
 
164
- toGeoJSON(options) {
165
- if (typeof options === 'function') {
166
- return this._toGeoJSON(options);
167
- }
149
+ if (coords.length === 1) {
150
+ coords = coords[0];
151
+ } else {
152
+ type = "Multi".concat(type);
153
+ }
168
154
 
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;
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;
184
166
  }
167
+
168
+ return result;
185
169
  }
170
+ }, {
171
+ key: "toGeoJSON",
172
+ value: function toGeoJSON(options) {
173
+ if (typeof options === 'function') {
174
+ return this._toGeoJSON(options);
175
+ }
186
176
 
187
- return this._toGeoJSON(project);
188
- }
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
+ }
189
192
 
190
- }
193
+ return this._toGeoJSON(project);
194
+ }
195
+ }], [{
196
+ key: "types",
197
+ get: function get() {
198
+ return ['Unknown', 'Point', 'LineString', 'Polygon'];
199
+ }
200
+ }]);
201
+ return VectorTileFeature;
202
+ }();
191
203
 
192
204
  exports.default = VectorTileFeature;
193
205
 
194
206
  function classifyRings(rings) {
195
- const len = rings.length;
207
+ var len = rings.length;
196
208
  if (len <= 1) return [rings];
197
- const polygons = [];
198
- let polygon;
199
- let ccw;
209
+ var polygons = [];
210
+ var polygon;
211
+ var ccw;
200
212
 
201
- for (let i = 0; i < len; i++) {
202
- const area = signedArea(rings[i]);
213
+ for (var i = 0; i < len; i++) {
214
+ var area = signedArea(rings[i]);
203
215
  if (area === 0) continue;
204
216
  if (ccw === undefined) ccw = area < 0;
205
217
 
@@ -216,9 +228,9 @@ function classifyRings(rings) {
216
228
  }
217
229
 
218
230
  function signedArea(ring) {
219
- let sum = 0;
231
+ var sum = 0;
220
232
 
221
- for (let i = 0, j = ring.length - 1, p1, p2; i < ring.length; j = i++) {
233
+ for (var i = 0, j = ring.length - 1, p1, p2; i < ring.length; j = i++) {
222
234
  p1 = ring[i];
223
235
  p2 = ring[j];
224
236
  sum += (p2[0] - p1[0]) * (p1[1] + p2[1]);
@@ -232,12 +244,12 @@ function readFeature(tag, feature, pbf) {
232
244
  }
233
245
 
234
246
  function readTag(pbf, feature) {
235
- const end = pbf.readVarint() + pbf.pos;
247
+ var end = pbf.readVarint() + pbf.pos;
236
248
 
237
249
  while (pbf.pos < end) {
238
- const key = feature._keys[pbf.readVarint()];
250
+ var key = feature._keys[pbf.readVarint()];
239
251
 
240
- const value = feature._values[pbf.readVarint()];
252
+ var value = feature._values[pbf.readVarint()];
241
253
 
242
254
  feature.properties[key] = value;
243
255
  }
@@ -1 +1 @@
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"}
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"}
@@ -7,10 +7,15 @@ 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
+
10
14
  var _vectorTileFeature = _interopRequireDefault(require("./vector-tile-feature.js"));
11
15
 
12
- class VectorTileLayer {
13
- constructor(pbf, end) {
16
+ var VectorTileLayer = function () {
17
+ function VectorTileLayer(pbf, end) {
18
+ (0, _classCallCheck2.default)(this, VectorTileLayer);
14
19
  this.version = 1;
15
20
  this.name = null;
16
21
  this.extent = 4096;
@@ -23,19 +28,22 @@ class VectorTileLayer {
23
28
  this.length = this._features.length;
24
29
  }
25
30
 
26
- feature(i) {
27
- if (i < 0 || i >= this._features.length) {
28
- throw new Error('feature index out of bounds');
29
- }
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
+ }
30
37
 
31
- this._pbf.pos = this._features[i];
38
+ this._pbf.pos = this._features[i];
32
39
 
33
- const end = this._pbf.readVarint() + this._pbf.pos;
40
+ var end = this._pbf.readVarint() + this._pbf.pos;
34
41
 
35
- return new _vectorTileFeature.default(this._pbf, end, this.extent, this._keys, this._values);
36
- }
37
-
38
- }
42
+ return new _vectorTileFeature.default(this._pbf, end, this.extent, this._keys, this._values);
43
+ }
44
+ }]);
45
+ return VectorTileLayer;
46
+ }();
39
47
 
40
48
  exports.default = VectorTileLayer;
41
49
 
@@ -44,11 +52,11 @@ function readLayer(tag, layer, pbf) {
44
52
  }
45
53
 
46
54
  function readValueMessage(pbf) {
47
- let value = null;
48
- const end = pbf.readVarint() + pbf.pos;
55
+ var value = null;
56
+ var end = pbf.readVarint() + pbf.pos;
49
57
 
50
58
  while (pbf.pos < end) {
51
- const tag = pbf.readVarint() >> 3;
59
+ var tag = pbf.readVarint() >> 3;
52
60
  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;
53
61
  }
54
62
 
@@ -1 +1 @@
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"}
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":"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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 _vectorTileLayer = _interopRequireDefault(require("./vector-tile-layer"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
- class VectorTile {
13
- constructor(pbf, end) {
14
- this.layers = pbf.readFields(readTile, {}, end);
15
- }
12
+ var _vectorTileLayer = _interopRequireDefault(require("./vector-tile-layer"));
16
13
 
17
- }
14
+ var VectorTile = function VectorTile(pbf, end) {
15
+ (0, _classCallCheck2.default)(this, VectorTile);
16
+ this.layers = pbf.readFields(readTile, {}, end);
17
+ };
18
18
 
19
19
  exports.default = VectorTile;
20
20
 
21
21
  function readTile(tag, layers, pbf) {
22
22
  if (tag === 3) {
23
- const layer = new _vectorTileLayer.default(pbf, pbf.readVarint() + pbf.pos);
23
+ var 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","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"}
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"}