@loaders.gl/mvt 3.0.12 → 3.1.0-alpha.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.
Files changed (98) hide show
  1. package/dist/dist.min.js +2 -2
  2. package/dist/dist.min.js.map +1 -1
  3. package/dist/es5/bundle.js +2 -4
  4. package/dist/es5/bundle.js.map +1 -1
  5. package/dist/es5/helpers/binary-util-functions.js +95 -0
  6. package/dist/es5/helpers/binary-util-functions.js.map +1 -0
  7. package/dist/es5/helpers/mapbox-util-functions.js +62 -0
  8. package/dist/es5/helpers/mapbox-util-functions.js.map +1 -0
  9. package/dist/es5/lib/binary-vector-tile/features-to-binary.js +4 -7
  10. package/dist/es5/lib/binary-vector-tile/features-to-binary.js.map +1 -1
  11. package/dist/es5/lib/binary-vector-tile/vector-tile-feature.js +23 -94
  12. package/dist/es5/lib/binary-vector-tile/vector-tile-feature.js.map +1 -1
  13. package/dist/es5/lib/binary-vector-tile/vector-tile-layer.js +15 -3
  14. package/dist/es5/lib/binary-vector-tile/vector-tile-layer.js.map +1 -1
  15. package/dist/es5/lib/binary-vector-tile/vector-tile.js +8 -3
  16. package/dist/es5/lib/binary-vector-tile/vector-tile.js.map +1 -1
  17. package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.js +15 -55
  18. package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.js.map +1 -1
  19. package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.js +15 -3
  20. package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.js.map +1 -1
  21. package/dist/es5/lib/mapbox-vector-tile/vector-tile.js +8 -3
  22. package/dist/es5/lib/mapbox-vector-tile/vector-tile.js.map +1 -1
  23. package/dist/es5/lib/parse-mvt.js +56 -53
  24. package/dist/es5/lib/parse-mvt.js.map +1 -1
  25. package/dist/es5/lib/types.js +2 -0
  26. package/dist/es5/lib/types.js.map +1 -0
  27. package/dist/es5/mvt-loader.js +1 -1
  28. package/dist/es5/mvt-loader.js.map +1 -1
  29. package/dist/es5/workers/mvt-worker.js +7 -3
  30. package/dist/es5/workers/mvt-worker.js.map +1 -0
  31. package/dist/esm/bundle.js +2 -4
  32. package/dist/esm/bundle.js.map +1 -1
  33. package/dist/esm/helpers/binary-util-functions.js +81 -0
  34. package/dist/esm/helpers/binary-util-functions.js.map +1 -0
  35. package/dist/esm/helpers/mapbox-util-functions.js +49 -0
  36. package/dist/esm/helpers/mapbox-util-functions.js.map +1 -0
  37. package/dist/esm/lib/binary-vector-tile/features-to-binary.js +4 -4
  38. package/dist/esm/lib/binary-vector-tile/features-to-binary.js.map +1 -1
  39. package/dist/esm/lib/binary-vector-tile/vector-tile-feature.js +27 -92
  40. package/dist/esm/lib/binary-vector-tile/vector-tile-feature.js.map +1 -1
  41. package/dist/esm/lib/binary-vector-tile/vector-tile-layer.js +22 -3
  42. package/dist/esm/lib/binary-vector-tile/vector-tile-layer.js.map +1 -1
  43. package/dist/esm/lib/binary-vector-tile/vector-tile.js +8 -3
  44. package/dist/esm/lib/binary-vector-tile/vector-tile.js.map +1 -1
  45. package/dist/esm/lib/mapbox-vector-tile/vector-tile-feature.js +20 -54
  46. package/dist/esm/lib/mapbox-vector-tile/vector-tile-feature.js.map +1 -1
  47. package/dist/esm/lib/mapbox-vector-tile/vector-tile-layer.js +22 -3
  48. package/dist/esm/lib/mapbox-vector-tile/vector-tile-layer.js.map +1 -1
  49. package/dist/esm/lib/mapbox-vector-tile/vector-tile.js +8 -3
  50. package/dist/esm/lib/mapbox-vector-tile/vector-tile.js.map +1 -1
  51. package/dist/esm/lib/parse-mvt.js +57 -52
  52. package/dist/esm/lib/parse-mvt.js.map +1 -1
  53. package/dist/esm/lib/types.js +2 -0
  54. package/dist/esm/lib/types.js.map +1 -0
  55. package/dist/esm/mvt-loader.js +1 -1
  56. package/dist/esm/mvt-loader.js.map +1 -1
  57. package/dist/esm/workers/mvt-worker.js +3 -3
  58. package/dist/esm/workers/mvt-worker.js.map +1 -0
  59. package/dist/mvt-worker.js +2 -2
  60. package/dist/mvt-worker.js.map +1 -1
  61. package/package.json +5 -5
  62. package/src/bundle.ts +2 -3
  63. package/src/helpers/binary-util-functions.ts +119 -0
  64. package/src/helpers/mapbox-util-functions.ts +78 -0
  65. package/src/lib/binary-vector-tile/{features-to-binary.js → features-to-binary.ts} +184 -29
  66. package/src/lib/binary-vector-tile/{vector-tile-feature.js → vector-tile-feature.ts} +41 -109
  67. package/src/lib/binary-vector-tile/vector-tile-layer.ts +109 -0
  68. package/src/lib/binary-vector-tile/vector-tile.ts +28 -0
  69. package/src/lib/mapbox-vector-tile/{vector-tile-feature.js → vector-tile-feature.ts} +31 -72
  70. package/src/lib/mapbox-vector-tile/{vector-tile-layer.js → vector-tile-layer.ts} +42 -14
  71. package/src/lib/mapbox-vector-tile/vector-tile.ts +28 -0
  72. package/src/lib/parse-mvt.ts +174 -0
  73. package/src/lib/types.ts +92 -0
  74. package/src/workers/{mvt-worker.js → mvt-worker.ts} +0 -0
  75. package/dist/dist.es5.min.js +0 -4
  76. package/dist/dist.es5.min.js.map +0 -1
  77. package/dist/es5/lib/binary-vector-tile/vector-tile-feature.d.ts +0 -39
  78. package/dist/es5/lib/binary-vector-tile/vector-tile-layer.d.ts +0 -25
  79. package/dist/es5/lib/binary-vector-tile/vector-tile.d.ts +0 -16
  80. package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.d.ts +0 -19
  81. package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.d.ts +0 -14
  82. package/dist/es5/lib/mapbox-vector-tile/vector-tile.d.ts +0 -7
  83. package/dist/esm/lib/binary-vector-tile/vector-tile-feature.d.ts +0 -39
  84. package/dist/esm/lib/binary-vector-tile/vector-tile-layer.d.ts +0 -25
  85. package/dist/esm/lib/binary-vector-tile/vector-tile.d.ts +0 -16
  86. package/dist/esm/lib/mapbox-vector-tile/vector-tile-feature.d.ts +0 -19
  87. package/dist/esm/lib/mapbox-vector-tile/vector-tile-layer.d.ts +0 -14
  88. package/dist/esm/lib/mapbox-vector-tile/vector-tile.d.ts +0 -7
  89. package/src/lib/binary-vector-tile/vector-tile-feature.d.ts +0 -39
  90. package/src/lib/binary-vector-tile/vector-tile-layer.d.ts +0 -25
  91. package/src/lib/binary-vector-tile/vector-tile-layer.js +0 -79
  92. package/src/lib/binary-vector-tile/vector-tile.d.ts +0 -16
  93. package/src/lib/binary-vector-tile/vector-tile.js +0 -18
  94. package/src/lib/mapbox-vector-tile/vector-tile-feature.d.ts +0 -19
  95. package/src/lib/mapbox-vector-tile/vector-tile-layer.d.ts +0 -14
  96. package/src/lib/mapbox-vector-tile/vector-tile.d.ts +0 -7
  97. package/src/lib/mapbox-vector-tile/vector-tile.js +0 -18
  98. package/src/lib/parse-mvt.js +0 -142
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/binary-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/binary-vector-tile/vector-tile.ts"],"names":["VectorTile","pbf","end","layers","readFields","readTile","tag","layer","VectorTileLayer","readVarint","pos","length","name"],"mappings":";;;;;;;;;;;;;AAEA;;IAGqBA,U,GAEnB,oBAAYC,GAAZ,EAA2BC,GAA3B,EAAyC;AAAA;AAAA;AACvC,OAAKC,MAAL,GAAcF,GAAG,CAACG,UAAJ,CAAeC,QAAf,EAAyB,EAAzB,EAA6BH,GAA7B,CAAd;AACD,C;;;;AASH,SAASG,QAAT,CAAkBC,GAAlB,EAA+BH,MAA/B,EAAwEF,GAAxE,EAA8F;AAC5F,MAAIK,GAAG,KAAK,CAAZ,EAAe;AACb,QAAIL,GAAJ,EAAS;AACP,UAAMM,KAAK,GAAG,IAAIC,wBAAJ,CAAoBP,GAApB,EAAyBA,GAAG,CAACQ,UAAJ,KAAmBR,GAAG,CAACS,GAAhD,CAAd;;AACA,UAAIH,KAAK,CAACI,MAAN,IAAgBR,MAApB,EAA4B;AAC1BA,QAAAA,MAAM,CAACI,KAAK,CAACK,IAAP,CAAN,GAAqBL,KAArB;AACD;AACF;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';\nimport Protobuf from 'pbf';\n\nexport default class VectorTile {\n layers: {[x: string]: VectorTileLayer};\n constructor(pbf: Protobuf, end?: number) {\n this.layers = pbf.readFields(readTile, {}, end);\n }\n}\n\n/**\n *\n * @param tag\n * @param layers\n * @param pbf\n */\nfunction readTile(tag: number, layers?: {[x: string]: VectorTileLayer}, pbf?: Protobuf): void {\n if (tag === 3) {\n if (pbf) {\n const layer = new VectorTileLayer(pbf, pbf.readVarint() + pbf.pos);\n if (layer.length && layers) {\n layers[layer.name] = layer;\n }\n }\n }\n}\n"],"file":"vector-tile.js"}
@@ -11,9 +11,21 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
11
11
 
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
 
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _mapboxUtilFunctions = require("../../helpers/mapbox-util-functions");
17
+
14
18
  var VectorTileFeature = function () {
15
19
  function VectorTileFeature(pbf, end, extent, keys, values) {
16
20
  (0, _classCallCheck2.default)(this, VectorTileFeature);
21
+ (0, _defineProperty2.default)(this, "properties", void 0);
22
+ (0, _defineProperty2.default)(this, "extent", void 0);
23
+ (0, _defineProperty2.default)(this, "type", void 0);
24
+ (0, _defineProperty2.default)(this, "id", void 0);
25
+ (0, _defineProperty2.default)(this, "_pbf", void 0);
26
+ (0, _defineProperty2.default)(this, "_geometry", void 0);
27
+ (0, _defineProperty2.default)(this, "_keys", void 0);
28
+ (0, _defineProperty2.default)(this, "_values", void 0);
17
29
  this.properties = {};
18
30
  this.extent = extent;
19
31
  this.type = 0;
@@ -22,7 +34,7 @@ var VectorTileFeature = function () {
22
34
  this._geometry = -1;
23
35
  this._keys = keys;
24
36
  this._values = values;
25
- pbf.readFields(readFeature, this, end);
37
+ pbf.readFields(_mapboxUtilFunctions.readFeature, this, end);
26
38
  }
27
39
 
28
40
  (0, _createClass2.default)(VectorTileFeature, [{
@@ -56,7 +68,7 @@ var VectorTileFeature = function () {
56
68
  line = [];
57
69
  }
58
70
 
59
- line.push([x, y]);
71
+ if (line) line.push([x, y]);
60
72
  } else if (cmd === 7) {
61
73
  if (line) {
62
74
  line.push(line[0].slice());
@@ -135,7 +147,7 @@ var VectorTileFeature = function () {
135
147
  break;
136
148
 
137
149
  case 3:
138
- coords = classifyRings(coords);
150
+ coords = (0, _mapboxUtilFunctions.classifyRings)(coords);
139
151
 
140
152
  for (i = 0; i < coords.length; i++) {
141
153
  for (j = 0; j < coords[i].length; j++) {
@@ -202,56 +214,4 @@ var VectorTileFeature = function () {
202
214
  }();
203
215
 
204
216
  exports.default = VectorTileFeature;
205
-
206
- function classifyRings(rings) {
207
- var len = rings.length;
208
- if (len <= 1) return [rings];
209
- var polygons = [];
210
- var polygon;
211
- var ccw;
212
-
213
- for (var i = 0; i < len; i++) {
214
- var area = signedArea(rings[i]);
215
- if (area === 0) continue;
216
- if (ccw === undefined) ccw = area < 0;
217
-
218
- if (ccw === area < 0) {
219
- if (polygon) polygons.push(polygon);
220
- polygon = [rings[i]];
221
- } else {
222
- polygon.push(rings[i]);
223
- }
224
- }
225
-
226
- if (polygon) polygons.push(polygon);
227
- return polygons;
228
- }
229
-
230
- function signedArea(ring) {
231
- var sum = 0;
232
-
233
- for (var i = 0, j = ring.length - 1, p1, p2; i < ring.length; j = i++) {
234
- p1 = ring[i];
235
- p2 = ring[j];
236
- sum += (p2[0] - p1[0]) * (p1[1] + p2[1]);
237
- }
238
-
239
- return sum;
240
- }
241
-
242
- function readFeature(tag, feature, pbf) {
243
- if (tag === 1) feature.id = pbf.readVarint();else if (tag === 2) readTag(pbf, feature);else if (tag === 3) feature.type = pbf.readVarint();else if (tag === 4) feature._geometry = pbf.pos;
244
- }
245
-
246
- function readTag(pbf, feature) {
247
- var end = pbf.readVarint() + pbf.pos;
248
-
249
- while (pbf.pos < end) {
250
- var key = feature._keys[pbf.readVarint()];
251
-
252
- var value = feature._values[pbf.readVarint()];
253
-
254
- feature.properties[key] = value;
255
- }
256
- }
257
217
  //# sourceMappingURL=vector-tile-feature.js.map
@@ -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.ts"],"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","result","geometry","coordinates","options","_toGeoJSON","z","size","Math","pow","x0","y0","project","p","PI","atan","exp"],"mappings":"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","sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\nimport Protobuf from 'pbf';\nimport {MvtMapboxCoordinates, MvtMapboxGeometry} from '../types';\nimport {readFeature, classifyRings} from '../../helpers/mapbox-util-functions';\n\nexport default class VectorTileFeature {\n properties: {[x: string]: string | number | boolean | null};\n extent: any;\n type: number;\n id: number | null;\n _pbf: Protobuf;\n _geometry: number;\n _keys: string[];\n _values: (string | number | boolean | null)[];\n static get types() {\n return ['Unknown', 'Point', 'LineString', 'Polygon'];\n }\n\n constructor(\n pbf: Protobuf,\n end: number,\n extent: any,\n keys: string[],\n values: (string | number | boolean | null)[]\n ) {\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(): MvtMapboxGeometry {\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: number[][][] = [];\n let line: number[][] | undefined;\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 if (line) 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: number;\n let j: number;\n\n // eslint-disable-next-line default-case\n switch (this.type) {\n case 1:\n const points: number[] = [];\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: MvtMapboxCoordinates = {\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(\n options: {x: number; y: number; z: number} | ((data: number[], feature: {extent: any}) => void)\n ): MvtMapboxCoordinates {\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: number[]) {\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"],"file":"vector-tile-feature.js"}
@@ -11,13 +11,23 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
11
11
 
12
12
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
13
 
14
- var _vectorTileFeature = _interopRequireDefault(require("./vector-tile-feature.js"));
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _vectorTileFeature = _interopRequireDefault(require("./vector-tile-feature"));
15
17
 
16
18
  var VectorTileLayer = function () {
17
19
  function VectorTileLayer(pbf, end) {
18
20
  (0, _classCallCheck2.default)(this, VectorTileLayer);
21
+ (0, _defineProperty2.default)(this, "version", void 0);
22
+ (0, _defineProperty2.default)(this, "name", void 0);
23
+ (0, _defineProperty2.default)(this, "extent", void 0);
24
+ (0, _defineProperty2.default)(this, "length", void 0);
25
+ (0, _defineProperty2.default)(this, "_pbf", void 0);
26
+ (0, _defineProperty2.default)(this, "_keys", void 0);
27
+ (0, _defineProperty2.default)(this, "_values", void 0);
28
+ (0, _defineProperty2.default)(this, "_features", void 0);
19
29
  this.version = 1;
20
- this.name = null;
30
+ this.name = '';
21
31
  this.extent = 4096;
22
32
  this.length = 0;
23
33
  this._pbf = pbf;
@@ -48,7 +58,9 @@ var VectorTileLayer = function () {
48
58
  exports.default = VectorTileLayer;
49
59
 
50
60
  function readLayer(tag, layer, pbf) {
51
- if (tag === 15) layer.version = pbf.readVarint();else if (tag === 1) layer.name = pbf.readString();else if (tag === 5) layer.extent = pbf.readVarint();else if (tag === 2) layer._features.push(pbf.pos);else if (tag === 3) layer._keys.push(pbf.readString());else if (tag === 4) layer._values.push(readValueMessage(pbf));
61
+ if (layer && pbf) {
62
+ if (tag === 15) layer.version = pbf.readVarint();else if (tag === 1) layer.name = pbf.readString();else if (tag === 5) layer.extent = pbf.readVarint();else if (tag === 2) layer._features.push(pbf.pos);else if (tag === 3) layer._keys.push(pbf.readString());else if (tag === 4) layer._values.push(readValueMessage(pbf));
63
+ }
52
64
  }
53
65
 
54
66
  function readValueMessage(pbf) {
@@ -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":"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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.ts"],"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":["/* eslint-disable indent */\n// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\n\nimport Protobuf from 'pbf';\nimport VectorTileFeature from './vector-tile-feature';\n\nexport default class VectorTileLayer {\n version: number;\n name: string;\n extent: number;\n length: number;\n _pbf: Protobuf;\n _keys: string[];\n _values: (string | number | boolean | null)[];\n _features: number[];\n constructor(pbf: Protobuf, end: number) {\n // Public\n this.version = 1;\n this.name = '';\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 /**\n * return feature `i` from this layer as a `VectorTileFeature`\n * @param index\n * @returns feature\n */\n\n feature(i: number): VectorTileFeature {\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\n/**\n *\n * @param tag\n * @param layer\n * @param pbf\n */\nfunction readLayer(tag: number, layer?: VectorTileLayer, pbf?: Protobuf): void {\n if (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}\n\n/**\n *\n * @param pbf\n * @returns value\n */\nfunction readValueMessage(pbf: Protobuf) {\n let value: string | number | boolean | null = 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"}
@@ -9,10 +9,13 @@ exports.default = void 0;
9
9
 
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
12
14
  var _vectorTileLayer = _interopRequireDefault(require("./vector-tile-layer"));
13
15
 
14
16
  var VectorTile = function VectorTile(pbf, end) {
15
17
  (0, _classCallCheck2.default)(this, VectorTile);
18
+ (0, _defineProperty2.default)(this, "layers", void 0);
16
19
  this.layers = pbf.readFields(readTile, {}, end);
17
20
  };
18
21
 
@@ -20,10 +23,12 @@ exports.default = VectorTile;
20
23
 
21
24
  function readTile(tag, layers, pbf) {
22
25
  if (tag === 3) {
23
- var layer = new _vectorTileLayer.default(pbf, pbf.readVarint() + pbf.pos);
26
+ if (pbf) {
27
+ var layer = new _vectorTileLayer.default(pbf, pbf.readVarint() + pbf.pos);
24
28
 
25
- if (layer.length) {
26
- layers[layer.name] = layer;
29
+ if (layer.length && layers) {
30
+ layers[layer.name] = layer;
31
+ }
27
32
  }
28
33
  }
29
34
  }
@@ -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.ts"],"names":["VectorTile","pbf","end","layers","readFields","readTile","tag","layer","VectorTileLayer","readVarint","pos","length","name"],"mappings":";;;;;;;;;;;;;AAEA;;IAGqBA,U,GAEnB,oBAAYC,GAAZ,EAA2BC,GAA3B,EAAyC;AAAA;AAAA;AACvC,OAAKC,MAAL,GAAcF,GAAG,CAACG,UAAJ,CAAeC,QAAf,EAAyB,EAAzB,EAA6BH,GAA7B,CAAd;AACD,C;;;;AASH,SAASG,QAAT,CAAkBC,GAAlB,EAA+BH,MAA/B,EAAwEF,GAAxE,EAA8F;AAC5F,MAAIK,GAAG,KAAK,CAAZ,EAAe;AACb,QAAIL,GAAJ,EAAS;AACP,UAAMM,KAAK,GAAG,IAAIC,wBAAJ,CAAoBP,GAApB,EAAyBA,GAAG,CAACQ,UAAJ,KAAmBR,GAAG,CAACS,GAAhD,CAAd;;AACA,UAAIH,KAAK,CAACI,MAAN,IAAgBR,MAApB,EAA4B;AAC1BA,QAAAA,MAAM,CAACI,KAAK,CAACK,IAAP,CAAN,GAAqBL,KAArB;AACD;AACF;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';\nimport Protobuf from 'pbf';\n\nexport default class VectorTile {\n layers: {[x: string]: VectorTileLayer};\n constructor(pbf: Protobuf, end?: number) {\n this.layers = pbf.readFields(readTile, {}, end);\n }\n}\n\n/**\n *\n * @param tag\n * @param layers\n * @param pbf\n */\nfunction readTile(tag: number, layers?: {[x: string]: VectorTileLayer}, pbf?: Protobuf): void {\n if (tag === 3) {\n if (pbf) {\n const layer = new VectorTileLayer(pbf, pbf.readVarint() + pbf.pos);\n if (layer.length && layers) {\n layers[layer.name] = layer;\n }\n }\n }\n}\n"],"file":"vector-tile.js"}
@@ -23,71 +23,75 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
23
23
 
24
24
  function parseMVT(arrayBuffer, options) {
25
25
  options = normalizeOptions(options);
26
- var binary = options.gis.format === 'binary';
27
26
  var features = [];
28
- var firstPassData = {
29
- pointPositionsCount: 0,
30
- pointFeaturesCount: 0,
31
- linePositionsCount: 0,
32
- linePathsCount: 0,
33
- lineFeaturesCount: 0,
34
- polygonPositionsCount: 0,
35
- polygonObjectsCount: 0,
36
- polygonRingsCount: 0,
37
- polygonFeaturesCount: 0
38
- };
39
-
40
- if (arrayBuffer.byteLength > 0) {
41
- var tile = binary ? new _vectorTile2.default(new _pbf.default(arrayBuffer)) : new _vectorTile.default(new _pbf.default(arrayBuffer));
42
- var loaderOptions = options.mvt;
43
- var selectedLayers = Array.isArray(loaderOptions.layers) ? loaderOptions.layers : Object.keys(tile.layers);
44
- selectedLayers.forEach(function (layerName) {
45
- var vectorTileLayer = tile.layers[layerName];
46
-
47
- var featureOptions = _objectSpread(_objectSpread({}, loaderOptions), {}, {
48
- layerName: layerName
49
- });
50
-
51
- if (!vectorTileLayer) {
52
- return;
53
- }
54
27
 
55
- for (var i = 0; i < vectorTileLayer.length; i++) {
56
- var vectorTileFeature = vectorTileLayer.feature(i, firstPassData);
57
- var decodedFeature = binary ? getDecodedFeatureBinary(vectorTileFeature, featureOptions) : getDecodedFeature(vectorTileFeature, featureOptions);
58
- features.push(decodedFeature);
59
- }
60
- });
61
- }
28
+ if (options) {
29
+ var binary = options.gis.format === 'binary';
30
+ var firstPassData = {
31
+ pointPositionsCount: 0,
32
+ pointFeaturesCount: 0,
33
+ linePositionsCount: 0,
34
+ linePathsCount: 0,
35
+ lineFeaturesCount: 0,
36
+ polygonPositionsCount: 0,
37
+ polygonObjectsCount: 0,
38
+ polygonRingsCount: 0,
39
+ polygonFeaturesCount: 0
40
+ };
41
+
42
+ if (arrayBuffer.byteLength > 0) {
43
+ var tile = binary ? new _vectorTile2.default(new _pbf.default(arrayBuffer)) : new _vectorTile.default(new _pbf.default(arrayBuffer));
44
+ var loaderOptions = options.mvt;
45
+ var selectedLayers = Array.isArray(loaderOptions.layers) ? loaderOptions.layers : Object.keys(tile.layers);
46
+ selectedLayers.forEach(function (layerName) {
47
+ var vectorTileLayer = tile.layers[layerName];
48
+
49
+ var featureOptions = _objectSpread(_objectSpread({}, loaderOptions), {}, {
50
+ layerName: layerName
51
+ });
52
+
53
+ if (!vectorTileLayer) {
54
+ return;
55
+ }
56
+
57
+ for (var i = 0; i < vectorTileLayer.length; i++) {
58
+ var vectorTileFeature = vectorTileLayer.feature(i, firstPassData);
59
+ var decodedFeature = binary ? getDecodedFeatureBinary(vectorTileFeature, featureOptions) : getDecodedFeature(vectorTileFeature, featureOptions);
60
+ features.push(decodedFeature);
61
+ }
62
+ });
63
+ }
62
64
 
63
- if (binary) {
64
- var data = (0, _featuresToBinary.featuresToBinary)(features, firstPassData, options.gis);
65
- data.byteLength = arrayBuffer.byteLength;
66
- return data;
65
+ if (binary) {
66
+ var data = (0, _featuresToBinary.featuresToBinary)(features, firstPassData);
67
+ data.byteLength = arrayBuffer.byteLength;
68
+ return data;
69
+ }
67
70
  }
68
71
 
69
72
  return features;
70
73
  }
71
74
 
72
75
  function normalizeOptions(options) {
73
- options = _objectSpread(_objectSpread({}, options), {}, {
74
- mvt: options.mvt || {},
75
- gis: options.gis || {}
76
- });
77
- var wgs84Coordinates = options.coordinates === 'wgs84';
78
- var _options = options,
79
- tileIndex = _options.tileIndex;
80
- var hasTileIndex = tileIndex && Number.isFinite(tileIndex.x) && Number.isFinite(tileIndex.y) && Number.isFinite(tileIndex.z);
81
-
82
- if (wgs84Coordinates && !hasTileIndex) {
83
- throw new Error('MVT Loader: WGS84 coordinates need tileIndex property. Check documentation.');
76
+ if (options) {
77
+ options = _objectSpread(_objectSpread({}, options), {}, {
78
+ mvt: options.mvt || {},
79
+ gis: options.gis || {}
80
+ });
81
+ var wgs84Coordinates = options.coordinates === 'wgs84';
82
+ var _options = options,
83
+ tileIndex = _options.tileIndex;
84
+ var hasTileIndex = tileIndex && Number.isFinite(tileIndex.x) && Number.isFinite(tileIndex.y) && Number.isFinite(tileIndex.z);
85
+
86
+ if (wgs84Coordinates && !hasTileIndex) {
87
+ throw new Error('MVT Loader: WGS84 coordinates need tileIndex property. Check documentation.');
88
+ }
84
89
  }
85
90
 
86
91
  return options;
87
92
  }
88
93
 
89
- function getDecodedFeature(feature) {
90
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
94
+ function getDecodedFeature(feature, options) {
91
95
  var decodedFeature = feature.toGeoJSON(options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinates);
92
96
 
93
97
  if (options.layerProperty) {
@@ -97,8 +101,7 @@ function getDecodedFeature(feature) {
97
101
  return decodedFeature;
98
102
  }
99
103
 
100
- function getDecodedFeatureBinary(feature) {
101
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
104
+ function getDecodedFeatureBinary(feature, options) {
102
105
  var decodedFeature = feature.toBinaryCoordinates(options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinatesBinary);
103
106
 
104
107
  if (options.layerProperty) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/parse-mvt.js"],"names":["parseMVT","arrayBuffer","options","normalizeOptions","binary","gis","format","features","firstPassData","pointPositionsCount","pointFeaturesCount","linePositionsCount","linePathsCount","lineFeaturesCount","polygonPositionsCount","polygonObjectsCount","polygonRingsCount","polygonFeaturesCount","byteLength","tile","BinaryVectorTile","Protobuf","VectorTile","loaderOptions","mvt","selectedLayers","Array","isArray","layers","Object","keys","forEach","layerName","vectorTileLayer","featureOptions","i","length","vectorTileFeature","feature","decodedFeature","getDecodedFeatureBinary","getDecodedFeature","push","data","wgs84Coordinates","coordinates","tileIndex","hasTileIndex","Number","isFinite","x","y","z","Error","toGeoJSON","transformToLocalCoordinates","layerProperty","properties","toBinaryCoordinates","transformToLocalCoordinatesBinary","line","extent","p","il"],"mappings":"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","sourcesContent":["// import {VectorTile} from '@mapbox/vector-tile';\nimport VectorTile from './mapbox-vector-tile/vector-tile';\nimport BinaryVectorTile from './binary-vector-tile/vector-tile';\n\nimport {featuresToBinary} from './binary-vector-tile/features-to-binary';\nimport Protobuf from 'pbf';\n\n/*\n * Parse MVT arrayBuffer and return GeoJSON.\n *\n * @param {arrayBuffer} _ A MVT arrayBuffer\n * @return {?Object} A GeoJSON geometry object or a binary representation\n */\nexport default function parseMVT(arrayBuffer, options) {\n options = normalizeOptions(options);\n\n const binary = options.gis.format === 'binary';\n const features = [];\n const firstPassData = {\n pointPositionsCount: 0,\n pointFeaturesCount: 0,\n linePositionsCount: 0,\n linePathsCount: 0,\n lineFeaturesCount: 0,\n polygonPositionsCount: 0,\n polygonObjectsCount: 0,\n polygonRingsCount: 0,\n polygonFeaturesCount: 0\n };\n\n if (arrayBuffer.byteLength > 0) {\n const tile = binary\n ? new BinaryVectorTile(new Protobuf(arrayBuffer))\n : new VectorTile(new Protobuf(arrayBuffer));\n const loaderOptions = options.mvt;\n\n const selectedLayers = Array.isArray(loaderOptions.layers)\n ? loaderOptions.layers\n : Object.keys(tile.layers);\n\n selectedLayers.forEach((layerName) => {\n const vectorTileLayer = tile.layers[layerName];\n const featureOptions = {...loaderOptions, layerName};\n\n if (!vectorTileLayer) {\n return;\n }\n\n for (let i = 0; i < vectorTileLayer.length; i++) {\n const vectorTileFeature = vectorTileLayer.feature(i, firstPassData);\n\n const decodedFeature = binary\n ? getDecodedFeatureBinary(vectorTileFeature, featureOptions)\n : getDecodedFeature(vectorTileFeature, featureOptions);\n features.push(decodedFeature);\n }\n });\n }\n\n if (binary) {\n const data = featuresToBinary(features, firstPassData, options.gis);\n // Add the original byteLength (as a reasonable approximation of the size of the binary data)\n // TODO decide where to store extra fields like byteLength (header etc) and document\n // @ts-ignore\n data.byteLength = arrayBuffer.byteLength;\n return data;\n }\n\n return features;\n}\n\nfunction normalizeOptions(options) {\n options = {\n ...options,\n mvt: options.mvt || {},\n gis: options.gis || {}\n };\n\n // Validate\n const wgs84Coordinates = options.coordinates === 'wgs84';\n const {tileIndex} = options;\n const hasTileIndex =\n tileIndex &&\n Number.isFinite(tileIndex.x) &&\n Number.isFinite(tileIndex.y) &&\n Number.isFinite(tileIndex.z);\n\n if (wgs84Coordinates && !hasTileIndex) {\n throw new Error('MVT Loader: WGS84 coordinates need tileIndex property. Check documentation.');\n }\n\n return options;\n}\n\nfunction getDecodedFeature(feature, options = {}) {\n const decodedFeature = feature.toGeoJSON(\n options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinates\n );\n\n // Add layer name to GeoJSON properties\n if (options.layerProperty) {\n decodedFeature.properties[options.layerProperty] = options.layerName;\n }\n\n return decodedFeature;\n}\n\nfunction getDecodedFeatureBinary(feature, options = {}) {\n const decodedFeature = feature.toBinaryCoordinates(\n options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinatesBinary\n );\n\n // Add layer name to GeoJSON properties\n if (options.layerProperty) {\n decodedFeature.properties[options.layerProperty] = options.layerName;\n }\n\n return decodedFeature;\n}\n\nfunction transformToLocalCoordinates(line, feature) {\n // This function transforms local coordinates in a\n // [0 - bufferSize, this.extent + bufferSize] range to a\n // [0 - (bufferSize / this.extent), 1 + (bufferSize / this.extent)] range.\n // The resulting extent would be 1.\n const {extent} = feature;\n\n for (let i = 0; i < line.length; i++) {\n const p = line[i];\n p[0] /= extent;\n p[1] /= extent;\n }\n}\n\nfunction transformToLocalCoordinatesBinary(data, feature) {\n // For the binary code path, the feature data is just\n // one big flat array, so we just divide each value\n const {extent} = feature;\n for (let i = 0, il = data.length; i < il; ++i) {\n data[i] /= extent;\n }\n}\n"],"file":"parse-mvt.js"}
1
+ {"version":3,"sources":["../../../src/lib/parse-mvt.ts"],"names":["parseMVT","arrayBuffer","options","normalizeOptions","features","binary","gis","format","firstPassData","pointPositionsCount","pointFeaturesCount","linePositionsCount","linePathsCount","lineFeaturesCount","polygonPositionsCount","polygonObjectsCount","polygonRingsCount","polygonFeaturesCount","byteLength","tile","BinaryVectorTile","Protobuf","VectorTile","loaderOptions","mvt","selectedLayers","Array","isArray","layers","Object","keys","forEach","layerName","vectorTileLayer","featureOptions","i","length","vectorTileFeature","feature","decodedFeature","getDecodedFeatureBinary","getDecodedFeature","push","data","wgs84Coordinates","coordinates","tileIndex","hasTileIndex","Number","isFinite","x","y","z","Error","toGeoJSON","transformToLocalCoordinates","layerProperty","properties","toBinaryCoordinates","transformToLocalCoordinatesBinary","line","extent","p","il"],"mappings":"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","sourcesContent":["// import {VectorTile} from '@mapbox/vector-tile';\nimport VectorTile from './mapbox-vector-tile/vector-tile';\nimport BinaryVectorTile from './binary-vector-tile/vector-tile';\n\nimport {featuresToBinary} from './binary-vector-tile/features-to-binary';\nimport Protobuf from 'pbf';\nimport {MvtBinaryCoordinates, MvtMapboxCoordinates, MvtOptions} from '../lib/types';\nimport VectorTileFeatureBinary from './binary-vector-tile/vector-tile-feature';\nimport VectorTileFeatureMapBox from './mapbox-vector-tile/vector-tile-feature';\nimport {LoaderOptions} from '@loaders.gl/loader-utils/';\n\n/**\n * Parse MVT arrayBuffer and return GeoJSON.\n *\n * @param arrayBuffer A MVT arrayBuffer\n * @param options\n * @returns A GeoJSON geometry object or a binary representation\n */\nexport default function parseMVT(arrayBuffer: ArrayBuffer, options?: LoaderOptions) {\n options = normalizeOptions(options);\n const features: (MvtBinaryCoordinates | MvtMapboxCoordinates)[] = [];\n\n if (options) {\n const binary = options.gis.format === 'binary';\n const firstPassData = {\n pointPositionsCount: 0,\n pointFeaturesCount: 0,\n linePositionsCount: 0,\n linePathsCount: 0,\n lineFeaturesCount: 0,\n polygonPositionsCount: 0,\n polygonObjectsCount: 0,\n polygonRingsCount: 0,\n polygonFeaturesCount: 0\n };\n\n if (arrayBuffer.byteLength > 0) {\n const tile = binary\n ? new BinaryVectorTile(new Protobuf(arrayBuffer))\n : new VectorTile(new Protobuf(arrayBuffer));\n const loaderOptions = options.mvt;\n\n const selectedLayers = Array.isArray(loaderOptions.layers)\n ? loaderOptions.layers\n : Object.keys(tile.layers);\n\n selectedLayers.forEach((layerName: string) => {\n const vectorTileLayer = tile.layers[layerName];\n const featureOptions = {...loaderOptions, layerName};\n\n if (!vectorTileLayer) {\n return;\n }\n\n for (let i = 0; i < vectorTileLayer.length; i++) {\n const vectorTileFeature = vectorTileLayer.feature(i, firstPassData);\n\n const decodedFeature = binary\n ? getDecodedFeatureBinary(vectorTileFeature as VectorTileFeatureBinary, featureOptions)\n : getDecodedFeature(vectorTileFeature as VectorTileFeatureMapBox, featureOptions);\n features.push(decodedFeature);\n }\n });\n }\n\n if (binary) {\n const data = featuresToBinary(features as MvtBinaryCoordinates[], firstPassData);\n // Add the original byteLength (as a reasonable approximation of the size of the binary data)\n // TODO decide where to store extra fields like byteLength (header etc) and document\n // @ts-ignore\n data.byteLength = arrayBuffer.byteLength;\n return data;\n }\n }\n return features;\n}\n\n/**\n * @param options\n * @returns options\n */\nfunction normalizeOptions(options: LoaderOptions | undefined) {\n if (options) {\n options = {\n ...options,\n mvt: options.mvt || {},\n gis: options.gis || {}\n };\n\n // Validate\n const wgs84Coordinates = options.coordinates === 'wgs84';\n const {tileIndex} = options;\n const hasTileIndex =\n tileIndex &&\n Number.isFinite(tileIndex.x) &&\n Number.isFinite(tileIndex.y) &&\n Number.isFinite(tileIndex.z);\n\n if (wgs84Coordinates && !hasTileIndex) {\n throw new Error(\n 'MVT Loader: WGS84 coordinates need tileIndex property. Check documentation.'\n );\n }\n }\n return options;\n}\n\n/**\n * @param feature\n * @param options\n * @returns decoded feature\n */\nfunction getDecodedFeature(\n feature: VectorTileFeatureMapBox,\n options: MvtOptions\n): MvtMapboxCoordinates {\n const decodedFeature = feature.toGeoJSON(\n options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinates\n );\n\n // Add layer name to GeoJSON properties\n if (options.layerProperty) {\n decodedFeature.properties[options.layerProperty] = options.layerName;\n }\n\n return decodedFeature;\n}\n\n/**\n * @param feature\n * @param options\n * @returns decoded binary feature\n */\nfunction getDecodedFeatureBinary(\n feature: VectorTileFeatureBinary,\n options: MvtOptions\n): MvtBinaryCoordinates {\n const decodedFeature = feature.toBinaryCoordinates(\n options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinatesBinary\n );\n\n // Add layer name to GeoJSON properties\n if (options.layerProperty) {\n decodedFeature.properties[options.layerProperty] = options.layerName;\n }\n\n return decodedFeature;\n}\n\n/**\n * @param line\n * @param feature\n */\nfunction transformToLocalCoordinates(line: number[], feature: {extent: any}): void {\n // This function transforms local coordinates in a\n // [0 - bufferSize, this.extent + bufferSize] range to a\n // [0 - (bufferSize / this.extent), 1 + (bufferSize / this.extent)] range.\n // The resulting extent would be 1.\n const {extent} = feature;\n for (let i = 0; i < line.length; i++) {\n const p = line[i];\n p[0] /= extent;\n p[1] /= extent;\n }\n}\n\nfunction transformToLocalCoordinatesBinary(data: number[], feature: {extent: any}) {\n // For the binary code path, the feature data is just\n // one big flat array, so we just divide each value\n const {extent} = feature;\n for (let i = 0, il = data.length; i < il; ++i) {\n data[i] /= extent;\n }\n}\n"],"file":"parse-mvt.js"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"types.js"}
@@ -19,7 +19,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
19
19
 
20
20
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
21
21
 
22
- var VERSION = typeof "3.0.12" !== 'undefined' ? "3.0.12" : 'latest';
22
+ var VERSION = typeof "3.1.0-alpha.4" !== 'undefined' ? "3.1.0-alpha.4" : 'latest';
23
23
  var MVTWorkerLoader = {
24
24
  name: 'Mapbox Vector Tile',
25
25
  id: 'mvt',
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mvt-loader.ts"],"names":["VERSION","MVTWorkerLoader","name","id","module","version","extensions","mimeTypes","worker","category","options","mvt","coordinates","layerProperty","layers","tileIndex","MVTLoader","parse","arrayBuffer","parseSync","parseMVT","binary"],"mappings":";;;;;;;;;;;;;;;AACA;;;;;;AAIA,IAAMA,OAAO,GAAG,oBAAuB,WAAvB,cAAmD,QAAnE;AAKO,IAAMC,eAAuB,GAAG;AACrCC,EAAAA,IAAI,EAAE,oBAD+B;AAErCC,EAAAA,EAAE,EAAE,KAFiC;AAGrCC,EAAAA,MAAM,EAAE,KAH6B;AAIrCC,EAAAA,OAAO,EAAEL,OAJ4B;AAMrCM,EAAAA,UAAU,EAAE,CAAC,KAAD,EAAQ,KAAR,CANyB;AAOrCC,EAAAA,SAAS,EAAE,CACT,oCADS,EAET,wBAFS,CAP0B;AAYrCC,EAAAA,MAAM,EAAE,IAZ6B;AAarCC,EAAAA,QAAQ,EAAE,UAb2B;AAcrCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AACHC,MAAAA,WAAW,EAAE,OADV;AAEHC,MAAAA,aAAa,EAAE,WAFZ;AAGHC,MAAAA,MAAM,EAAE,IAHL;AAIHC,MAAAA,SAAS,EAAE;AAJR;AADE;AAd4B,CAAhC;;;AA2BA,IAAMC,SAA2B,mCACnCf,eADmC;AAEtCgB,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP,EAAoBR,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAgC,uBAASQ,WAAT,EAAsBR,OAAtB,CAAhC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KAFiC;AAGtCS,EAAAA,SAAS,EAAEC,iBAH2B;AAItCC,EAAAA,MAAM,EAAE;AAJ8B,EAAjC","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport parseMVT from './lib/parse-mvt';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Worker loader for the Mapbox Vector Tile format\n */\nexport const MVTWorkerLoader: Loader = {\n name: 'Mapbox Vector Tile',\n id: 'mvt',\n module: 'mvt',\n version: VERSION,\n // Note: ArcGIS uses '.pbf' extension and 'application/octet-stream'\n extensions: ['mvt', 'pbf'],\n mimeTypes: [\n 'application/vnd.mapbox-vector-tile',\n 'application/x-protobuf'\n // 'application/octet-stream'\n ],\n worker: true,\n category: 'geometry',\n options: {\n mvt: {\n coordinates: 'local',\n layerProperty: 'layerName',\n layers: null,\n tileIndex: null\n }\n }\n};\n\n/**\n * Loader for the Mapbox Vector Tile format\n */\nexport const MVTLoader: LoaderWithParser = {\n ...MVTWorkerLoader,\n parse: async (arrayBuffer, options) => parseMVT(arrayBuffer, options),\n parseSync: parseMVT,\n binary: true\n};\n"],"file":"mvt-loader.js"}
1
+ {"version":3,"sources":["../../src/mvt-loader.ts"],"names":["VERSION","MVTWorkerLoader","name","id","module","version","extensions","mimeTypes","worker","category","options","mvt","coordinates","layerProperty","layers","tileIndex","MVTLoader","parse","arrayBuffer","parseSync","parseMVT","binary"],"mappings":";;;;;;;;;;;;;;;AACA;;;;;;AAIA,IAAMA,OAAO,GAAG,2BAAuB,WAAvB,qBAAmD,QAAnE;AAKO,IAAMC,eAAuB,GAAG;AACrCC,EAAAA,IAAI,EAAE,oBAD+B;AAErCC,EAAAA,EAAE,EAAE,KAFiC;AAGrCC,EAAAA,MAAM,EAAE,KAH6B;AAIrCC,EAAAA,OAAO,EAAEL,OAJ4B;AAMrCM,EAAAA,UAAU,EAAE,CAAC,KAAD,EAAQ,KAAR,CANyB;AAOrCC,EAAAA,SAAS,EAAE,CACT,oCADS,EAET,wBAFS,CAP0B;AAYrCC,EAAAA,MAAM,EAAE,IAZ6B;AAarCC,EAAAA,QAAQ,EAAE,UAb2B;AAcrCC,EAAAA,OAAO,EAAE;AACPC,IAAAA,GAAG,EAAE;AACHC,MAAAA,WAAW,EAAE,OADV;AAEHC,MAAAA,aAAa,EAAE,WAFZ;AAGHC,MAAAA,MAAM,EAAE,IAHL;AAIHC,MAAAA,SAAS,EAAE;AAJR;AADE;AAd4B,CAAhC;;;AA2BA,IAAMC,SAA2B,mCACnCf,eADmC;AAEtCgB,EAAAA,KAAK;AAAA,2EAAE,iBAAOC,WAAP,EAAoBR,OAApB;AAAA;AAAA;AAAA;AAAA;AAAA,+CAAgC,uBAASQ,WAAT,EAAsBR,OAAtB,CAAhC;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAAF;;AAAA;AAAA;AAAA;;AAAA;AAAA,KAFiC;AAGtCS,EAAAA,SAAS,EAAEC,iBAH2B;AAItCC,EAAAA,MAAM,EAAE;AAJ8B,EAAjC","sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport parseMVT from './lib/parse-mvt';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\n/**\n * Worker loader for the Mapbox Vector Tile format\n */\nexport const MVTWorkerLoader: Loader = {\n name: 'Mapbox Vector Tile',\n id: 'mvt',\n module: 'mvt',\n version: VERSION,\n // Note: ArcGIS uses '.pbf' extension and 'application/octet-stream'\n extensions: ['mvt', 'pbf'],\n mimeTypes: [\n 'application/vnd.mapbox-vector-tile',\n 'application/x-protobuf'\n // 'application/octet-stream'\n ],\n worker: true,\n category: 'geometry',\n options: {\n mvt: {\n coordinates: 'local',\n layerProperty: 'layerName',\n layers: null,\n tileIndex: null\n }\n }\n};\n\n/**\n * Loader for the Mapbox Vector Tile format\n */\nexport const MVTLoader: LoaderWithParser = {\n ...MVTWorkerLoader,\n parse: async (arrayBuffer, options) => parseMVT(arrayBuffer, options),\n parseSync: parseMVT,\n binary: true\n};\n"],"file":"mvt-loader.js"}
@@ -1,4 +1,8 @@
1
- import {MVTLoader} from '../mvt-loader';
2
- import {createLoaderWorker} from '@loaders.gl/loader-utils';
1
+ "use strict";
3
2
 
4
- createLoaderWorker(MVTLoader);
3
+ var _mvtLoader = require("../mvt-loader");
4
+
5
+ var _loaderUtils = require("@loaders.gl/loader-utils");
6
+
7
+ (0, _loaderUtils.createLoaderWorker)(_mvtLoader.MVTLoader);
8
+ //# sourceMappingURL=mvt-worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/workers/mvt-worker.ts"],"names":["MVTLoader"],"mappings":";;AAAA;;AACA;;AAEA,qCAAmBA,oBAAnB","sourcesContent":["import {MVTLoader} from '../mvt-loader';\nimport {createLoaderWorker} from '@loaders.gl/loader-utils';\n\ncreateLoaderWorker(MVTLoader);\n"],"file":"mvt-worker.js"}
@@ -1,7 +1,5 @@
1
1
  const moduleExports = require('./index');
2
2
 
3
- const _global = typeof window === 'undefined' ? global : window;
4
-
5
- _global.loaders = _global.loaders || {};
6
- module.exports = Object.assign(_global.loaders, moduleExports);
3
+ globalThis.loaders = globalThis.loaders || {};
4
+ module.exports = Object.assign(globalThis.loaders, moduleExports);
7
5
  //# sourceMappingURL=bundle.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","_global","window","global","loaders","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACA,MAAMC,OAAO,GAAG,OAAOC,MAAP,KAAkB,WAAlB,GAAgCC,MAAhC,GAAyCD,MAAzD;;AACAD,OAAO,CAACG,OAAR,GAAkBH,OAAO,CAACG,OAAR,IAAmB,EAArC;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcP,OAAO,CAACG,OAAtB,EAA+BL,aAA/B,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nconst _global = typeof window === 'undefined' ? global : window;\n_global.loaders = _global.loaders || {};\nmodule.exports = Object.assign(_global.loaders, moduleExports);\n"],"file":"bundle.js"}
1
+ {"version":3,"sources":["../../src/bundle.ts"],"names":["moduleExports","require","globalThis","loaders","module","exports","Object","assign"],"mappings":"AACA,MAAMA,aAAa,GAAGC,OAAO,CAAC,SAAD,CAA7B;;AACAC,UAAU,CAACC,OAAX,GAAqBD,UAAU,CAACC,OAAX,IAAsB,EAA3C;AACAC,MAAM,CAACC,OAAP,GAAiBC,MAAM,CAACC,MAAP,CAAcL,UAAU,CAACC,OAAzB,EAAkCH,aAAlC,CAAjB","sourcesContent":["// @ts-nocheck\nconst moduleExports = require('./index');\nglobalThis.loaders = globalThis.loaders || {};\nmodule.exports = Object.assign(globalThis.loaders, moduleExports);\n"],"file":"bundle.js"}
@@ -0,0 +1,81 @@
1
+ import { getPolygonSignedArea } from '@math.gl/polygon';
2
+ export function classifyRings(geom) {
3
+ const len = geom.lines.length;
4
+
5
+ if (len <= 1) {
6
+ return {
7
+ data: geom.data,
8
+ areas: [[getPolygonSignedArea(geom.data)]],
9
+ lines: [geom.lines]
10
+ };
11
+ }
12
+
13
+ const areas = [];
14
+ const polygons = [];
15
+ let ringAreas = [];
16
+ let polygon = [];
17
+ let ccw;
18
+ let offset = 0;
19
+
20
+ for (let endIndex, i = 0, startIndex; i < len; i++) {
21
+ startIndex = geom.lines[i] - offset;
22
+ endIndex = geom.lines[i + 1] - offset || geom.data.length;
23
+ const shape = geom.data.slice(startIndex, endIndex);
24
+ const area = getPolygonSignedArea(shape);
25
+
26
+ if (area === 0) {
27
+ const before = geom.data.slice(0, startIndex);
28
+ const after = geom.data.slice(endIndex);
29
+ geom.data = before.concat(after);
30
+ offset += endIndex - startIndex;
31
+ continue;
32
+ }
33
+
34
+ if (ccw === undefined) ccw = area < 0;
35
+
36
+ if (ccw === area < 0) {
37
+ if (polygon.length) {
38
+ areas.push(ringAreas);
39
+ polygons.push(polygon);
40
+ }
41
+
42
+ polygon = [startIndex];
43
+ ringAreas = [area];
44
+ } else {
45
+ ringAreas.push(area);
46
+ polygon.push(startIndex);
47
+ }
48
+ }
49
+
50
+ if (ringAreas) areas.push(ringAreas);
51
+ if (polygon.length) polygons.push(polygon);
52
+ return {
53
+ areas,
54
+ lines: polygons,
55
+ data: geom.data
56
+ };
57
+ }
58
+ export function project(data, x0, y0, size) {
59
+ for (let j = 0, jl = data.length; j < jl; j += 2) {
60
+ data[j] = (data[j] + x0) * 360 / size - 180;
61
+ const y2 = 180 - (data[j + 1] + y0) * 360 / size;
62
+ data[j + 1] = 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90;
63
+ }
64
+ }
65
+ export function readFeature(tag, feature, pbf) {
66
+ if (feature && pbf) {
67
+ if (tag === 1) feature.id = pbf.readVarint();else if (tag === 2) readTag(pbf, feature);else if (tag === 3) feature.type = pbf.readVarint();else if (tag === 4) feature._geometry = pbf.pos;
68
+ }
69
+ }
70
+ export function readTag(pbf, feature) {
71
+ const end = pbf.readVarint() + pbf.pos;
72
+
73
+ while (pbf.pos < end) {
74
+ const key = feature._keys[pbf.readVarint()];
75
+
76
+ const value = feature._values[pbf.readVarint()];
77
+
78
+ feature.properties[key] = value;
79
+ }
80
+ }
81
+ //# sourceMappingURL=binary-util-functions.js.map