@loaders.gl/mvt 3.0.12 → 3.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/dist.es5.min.js +1 -1
  2. package/dist/dist.es5.min.js.map +1 -1
  3. package/dist/dist.min.js +1 -1
  4. package/dist/dist.min.js.map +1 -1
  5. package/dist/es5/bundle.js +2 -2
  6. package/dist/es5/bundle.js.map +1 -1
  7. package/dist/es5/index.js +2 -2
  8. package/dist/es5/lib/binary-vector-tile/features-to-binary.js +132 -182
  9. package/dist/es5/lib/binary-vector-tile/features-to-binary.js.map +1 -1
  10. package/dist/es5/lib/binary-vector-tile/vector-tile-feature.js +133 -160
  11. package/dist/es5/lib/binary-vector-tile/vector-tile-feature.js.map +1 -1
  12. package/dist/es5/lib/binary-vector-tile/vector-tile-layer.js +15 -23
  13. package/dist/es5/lib/binary-vector-tile/vector-tile-layer.js.map +1 -1
  14. package/dist/es5/lib/binary-vector-tile/vector-tile.js +7 -7
  15. package/dist/es5/lib/binary-vector-tile/vector-tile.js.map +1 -1
  16. package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.js +157 -169
  17. package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.js.map +1 -1
  18. package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.js +15 -23
  19. package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.js.map +1 -1
  20. package/dist/es5/lib/mapbox-vector-tile/vector-tile.js +7 -7
  21. package/dist/es5/lib/mapbox-vector-tile/vector-tile.js.map +1 -1
  22. package/dist/es5/lib/parse-mvt.js +35 -39
  23. package/dist/es5/lib/parse-mvt.js.map +1 -1
  24. package/dist/es5/mvt-loader.js +5 -38
  25. package/dist/es5/mvt-loader.js.map +1 -1
  26. package/dist/esm/lib/binary-vector-tile/vector-tile-feature.js +2 -2
  27. package/dist/esm/lib/binary-vector-tile/vector-tile-feature.js.map +1 -1
  28. package/dist/esm/lib/mapbox-vector-tile/vector-tile-feature.js +3 -3
  29. package/dist/esm/lib/mapbox-vector-tile/vector-tile-feature.js.map +1 -1
  30. package/dist/esm/mvt-loader.js +1 -1
  31. package/dist/mvt-worker.js +1 -1
  32. package/dist/mvt-worker.js.map +1 -1
  33. package/package.json +4 -4
@@ -7,8 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = parseMVT;
9
9
 
10
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
-
12
10
  var _vectorTile = _interopRequireDefault(require("./mapbox-vector-tile/vector-tile"));
13
11
 
14
12
  var _vectorTile2 = _interopRequireDefault(require("./binary-vector-tile/vector-tile"));
@@ -17,15 +15,11 @@ var _featuresToBinary = require("./binary-vector-tile/features-to-binary");
17
15
 
18
16
  var _pbf = _interopRequireDefault(require("pbf"));
19
17
 
20
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
21
-
22
- 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; }
23
-
24
18
  function parseMVT(arrayBuffer, options) {
25
19
  options = normalizeOptions(options);
26
- var binary = options.gis.format === 'binary';
27
- var features = [];
28
- var firstPassData = {
20
+ const binary = options.gis.format === 'binary';
21
+ const features = [];
22
+ const firstPassData = {
29
23
  pointPositionsCount: 0,
30
24
  pointFeaturesCount: 0,
31
25
  linePositionsCount: 0,
@@ -38,30 +32,29 @@ function parseMVT(arrayBuffer, options) {
38
32
  };
39
33
 
40
34
  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
- });
35
+ const tile = binary ? new _vectorTile2.default(new _pbf.default(arrayBuffer)) : new _vectorTile.default(new _pbf.default(arrayBuffer));
36
+ const loaderOptions = options.mvt;
37
+ const selectedLayers = Array.isArray(loaderOptions.layers) ? loaderOptions.layers : Object.keys(tile.layers);
38
+ selectedLayers.forEach(layerName => {
39
+ const vectorTileLayer = tile.layers[layerName];
40
+ const featureOptions = { ...loaderOptions,
41
+ layerName
42
+ };
50
43
 
51
44
  if (!vectorTileLayer) {
52
45
  return;
53
46
  }
54
47
 
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);
48
+ for (let i = 0; i < vectorTileLayer.length; i++) {
49
+ const vectorTileFeature = vectorTileLayer.feature(i, firstPassData);
50
+ const decodedFeature = binary ? getDecodedFeatureBinary(vectorTileFeature, featureOptions) : getDecodedFeature(vectorTileFeature, featureOptions);
58
51
  features.push(decodedFeature);
59
52
  }
60
53
  });
61
54
  }
62
55
 
63
56
  if (binary) {
64
- var data = (0, _featuresToBinary.featuresToBinary)(features, firstPassData, options.gis);
57
+ const data = (0, _featuresToBinary.featuresToBinary)(features, firstPassData, options.gis);
65
58
  data.byteLength = arrayBuffer.byteLength;
66
59
  return data;
67
60
  }
@@ -70,14 +63,15 @@ function parseMVT(arrayBuffer, options) {
70
63
  }
71
64
 
72
65
  function normalizeOptions(options) {
73
- options = _objectSpread(_objectSpread({}, options), {}, {
66
+ options = { ...options,
74
67
  mvt: options.mvt || {},
75
68
  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);
69
+ };
70
+ const wgs84Coordinates = options.coordinates === 'wgs84';
71
+ const {
72
+ tileIndex
73
+ } = options;
74
+ const hasTileIndex = tileIndex && Number.isFinite(tileIndex.x) && Number.isFinite(tileIndex.y) && Number.isFinite(tileIndex.z);
81
75
 
82
76
  if (wgs84Coordinates && !hasTileIndex) {
83
77
  throw new Error('MVT Loader: WGS84 coordinates need tileIndex property. Check documentation.');
@@ -86,9 +80,8 @@ function normalizeOptions(options) {
86
80
  return options;
87
81
  }
88
82
 
89
- function getDecodedFeature(feature) {
90
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
91
- var decodedFeature = feature.toGeoJSON(options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinates);
83
+ function getDecodedFeature(feature, options = {}) {
84
+ const decodedFeature = feature.toGeoJSON(options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinates);
92
85
 
93
86
  if (options.layerProperty) {
94
87
  decodedFeature.properties[options.layerProperty] = options.layerName;
@@ -97,9 +90,8 @@ function getDecodedFeature(feature) {
97
90
  return decodedFeature;
98
91
  }
99
92
 
100
- function getDecodedFeatureBinary(feature) {
101
- var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
102
- var decodedFeature = feature.toBinaryCoordinates(options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinatesBinary);
93
+ function getDecodedFeatureBinary(feature, options = {}) {
94
+ const decodedFeature = feature.toBinaryCoordinates(options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinatesBinary);
103
95
 
104
96
  if (options.layerProperty) {
105
97
  decodedFeature.properties[options.layerProperty] = options.layerName;
@@ -109,19 +101,23 @@ function getDecodedFeatureBinary(feature) {
109
101
  }
110
102
 
111
103
  function transformToLocalCoordinates(line, feature) {
112
- var extent = feature.extent;
104
+ const {
105
+ extent
106
+ } = feature;
113
107
 
114
- for (var i = 0; i < line.length; i++) {
115
- var p = line[i];
108
+ for (let i = 0; i < line.length; i++) {
109
+ const p = line[i];
116
110
  p[0] /= extent;
117
111
  p[1] /= extent;
118
112
  }
119
113
  }
120
114
 
121
115
  function transformToLocalCoordinatesBinary(data, feature) {
122
- var extent = feature.extent;
116
+ const {
117
+ extent
118
+ } = feature;
123
119
 
124
- for (var i = 0, il = data.length; i < il; ++i) {
120
+ for (let i = 0, il = data.length; i < il; ++i) {
125
121
  data[i] /= extent;
126
122
  }
127
123
  }
@@ -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.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"}
@@ -7,20 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.MVTLoader = exports.MVTWorkerLoader = void 0;
9
9
 
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
-
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
10
  var _parseMvt = _interopRequireDefault(require("./lib/parse-mvt"));
17
11
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
19
-
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
-
22
- var VERSION = typeof "3.0.12" !== 'undefined' ? "3.0.12" : 'latest';
23
- var MVTWorkerLoader = {
12
+ const VERSION = typeof "3.0.13" !== 'undefined' ? "3.0.13" : 'latest';
13
+ const MVTWorkerLoader = {
24
14
  name: 'Mapbox Vector Tile',
25
15
  id: 'mvt',
26
16
  module: 'mvt',
@@ -39,33 +29,10 @@ var MVTWorkerLoader = {
39
29
  }
40
30
  };
41
31
  exports.MVTWorkerLoader = MVTWorkerLoader;
42
-
43
- var MVTLoader = _objectSpread(_objectSpread({}, MVTWorkerLoader), {}, {
44
- parse: function () {
45
- var _parse = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(arrayBuffer, options) {
46
- return _regenerator.default.wrap(function _callee$(_context) {
47
- while (1) {
48
- switch (_context.prev = _context.next) {
49
- case 0:
50
- return _context.abrupt("return", (0, _parseMvt.default)(arrayBuffer, options));
51
-
52
- case 1:
53
- case "end":
54
- return _context.stop();
55
- }
56
- }
57
- }, _callee);
58
- }));
59
-
60
- function parse(_x, _x2) {
61
- return _parse.apply(this, arguments);
62
- }
63
-
64
- return parse;
65
- }(),
32
+ const MVTLoader = { ...MVTWorkerLoader,
33
+ parse: async (arrayBuffer, options) => (0, _parseMvt.default)(arrayBuffer, options),
66
34
  parseSync: _parseMvt.default,
67
35
  binary: true
68
- });
69
-
36
+ };
70
37
  exports.MVTLoader = MVTLoader;
71
38
  //# sourceMappingURL=mvt-loader.js.map
@@ -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,MAAMA,OAAO,GAAG,oBAAuB,WAAvB,cAAmD,QAAnE;AAKO,MAAMC,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,MAAMC,SAA2B,GAAG,EACzC,GAAGf,eADsC;AAEzCgB,EAAAA,KAAK,EAAE,OAAOC,WAAP,EAAoBR,OAApB,KAAgC,uBAASQ,WAAT,EAAsBR,OAAtB,CAFE;AAGzCS,EAAAA,SAAS,EAAEC,iBAH8B;AAIzCC,EAAAA,MAAM,EAAE;AAJiC,CAApC","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"}
@@ -59,7 +59,7 @@ export default class VectorTileFeature {
59
59
  i += 2;
60
60
  }
61
61
  } else {
62
- throw new Error(`unknown command ${cmd}`);
62
+ throw new Error("unknown command ".concat(cmd));
63
63
  }
64
64
  }
65
65
 
@@ -103,7 +103,7 @@ export default class VectorTileFeature {
103
103
  geom.type = VectorTileFeature.types[this.type];
104
104
 
105
105
  if (geom.lines.length > 1) {
106
- geom.type = `Multi${geom.type}`;
106
+ geom.type = "Multi".concat(geom.type);
107
107
  }
108
108
 
109
109
  const result = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/lib/binary-vector-tile/vector-tile-feature.js"],"names":["getPolygonSignedArea","endPos","cmd","cmdLen","length","x","y","i","TEST_EXPORTS","classifyRings","VectorTileFeature","types","constructor","pbf","end","extent","keys","values","firstPassData","properties","type","id","_pbf","_geometry","_keys","_values","_firstPassData","readFields","readFeature","loadGeometry","pos","readVarint","lines","data","readSVarint","push","start","Error","_toBinaryCoordinates","transform","geom","coordLength","pointFeaturesCount","pointPositionsCount","lineFeaturesCount","linePathsCount","linePositionsCount","classified","polygonFeaturesCount","polygonObjectsCount","polygonRingsCount","polygonPositionsCount","result","geometry","toBinaryCoordinates","options","z","size","Math","pow","x0","y0","project","j","jl","y2","PI","atan","exp","len","areas","polygons","ringAreas","polygon","ccw","offset","startIndex","endIndex","shape","slice","area","before","after","concat","undefined","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\nimport {getPolygonSignedArea} from '@math.gl/polygon';\n\n// Reduce GC by reusing variables\nlet endPos, cmd, cmdLen, length, x, y, i;\n\nexport const TEST_EXPORTS = {\n classifyRings\n};\n\nexport default class VectorTileFeature {\n static get types() {\n return ['Unknown', 'Point', 'LineString', 'Polygon'];\n }\n\n constructor(pbf, end, extent, keys, values, firstPassData) {\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 this._firstPassData = firstPassData;\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 endPos = pbf.readVarint() + pbf.pos;\n cmd = 1;\n length = 0;\n x = 0;\n y = 0;\n i = 0;\n\n // Note: I attempted to replace the `data` array with a\n // Float32Array, but performance was worse, both using\n // `set()` and direct index access. Also, we cannot\n // know how large the buffer should be, so it would\n // increase memory usage\n const lines = []; // Indices where lines start\n const data = []; // Flat array of coordinate data\n\n while (pbf.pos < endPos) {\n if (length <= 0) {\n 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 // New line\n lines.push(i);\n }\n data.push(x, y);\n i += 2;\n } else if (cmd === 7) {\n // Workaround for https://github.com/mapbox/mapnik-vector-tile/issues/90\n if (i > 0) {\n const start = lines[lines.length - 1]; // start index of polygon\n data.push(data[start], data[start + 1]); // closePolygon\n i += 2;\n }\n } else {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n return {data, lines};\n }\n\n _toBinaryCoordinates(transform) {\n // Expands the protobuf data to an intermediate `lines`\n // data format, which maps closely to the binary data buffers.\n // It is similar to GeoJSON, but rather than storing the coordinates\n // in multidimensional arrays, we have a 1D `data` with all the\n // coordinates, and then index into this using the `lines`\n // parameter, e.g.\n //\n // geometry: {\n // type: 'Point', data: [1,2], lines: [0]\n // }\n // geometry: {\n // type: 'LineString', data: [1,2,3,4,...], lines: [0]\n // }\n // geometry: {\n // type: 'Polygon', data: [1,2,3,4,...], lines: [[0, 2]]\n // }\n // Thus the lines member lets us look up the relevant range\n // from the data array.\n // The Multi* versions of the above types share the same data\n // structure, just with multiple elements in the lines array\n let geom = this.loadGeometry();\n\n // Apply the supplied transformation to data\n transform(geom.data, this);\n\n const coordLength = 2;\n\n switch (this.type) {\n case 1: // Point\n this._firstPassData.pointFeaturesCount++;\n this._firstPassData.pointPositionsCount += geom.lines.length;\n break;\n\n case 2: // LineString\n this._firstPassData.lineFeaturesCount++;\n this._firstPassData.linePathsCount += geom.lines.length;\n this._firstPassData.linePositionsCount += geom.data.length / coordLength;\n break;\n\n case 3: // Polygon\n const classified = classifyRings(geom);\n\n // Unlike Point & LineString geom.lines is a 2D array, thanks\n // to the classifyRings method\n this._firstPassData.polygonFeaturesCount++;\n this._firstPassData.polygonObjectsCount += classified.lines.length;\n\n for (const lines of classified.lines) {\n this._firstPassData.polygonRingsCount += lines.length;\n }\n this._firstPassData.polygonPositionsCount += classified.data.length / coordLength;\n\n // @ts-ignore\n geom = classified;\n break;\n }\n\n geom.type = VectorTileFeature.types[this.type];\n if (geom.lines.length > 1) {\n geom.type = `Multi${geom.type}`;\n }\n\n const result = {\n type: 'Feature',\n geometry: geom,\n properties: this.properties\n };\n\n if (this.id !== null) {\n result.id = this.id;\n }\n\n return result;\n }\n\n toBinaryCoordinates(options) {\n if (typeof options === 'function') {\n return this._toBinaryCoordinates(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(data) {\n for (let j = 0, jl = data.length; j < jl; j += 2) {\n data[j] = ((data[j] + x0) * 360) / size - 180;\n const y2 = 180 - ((data[j + 1] + y0) * 360) / size;\n data[j + 1] = (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;\n }\n }\n return this._toBinaryCoordinates(project);\n }\n}\n\n/**\n * Classifies an array of rings into polygons with outer rings and holes\n * The function also detects holes which have zero area and\n * removes them. In doing so it modifies the input\n * `geom.data` array to remove the unneeded data\n */\nfunction classifyRings(geom) {\n const len = geom.lines.length;\n\n if (len <= 1) {\n return {\n data: geom.data,\n areas: [[getPolygonSignedArea(geom.data)]],\n lines: [geom.lines]\n };\n }\n\n const areas = [];\n const polygons = [];\n let ringAreas;\n let polygon;\n let ccw;\n let offset = 0;\n\n for (let i = 0, startIndex, endIndex; i < len; i++) {\n startIndex = geom.lines[i] - offset;\n\n endIndex = geom.lines[i + 1] - offset || geom.data.length;\n const shape = geom.data.slice(startIndex, endIndex);\n const area = getPolygonSignedArea(shape);\n\n if (area === 0) {\n // This polygon has no area, so remove it from the shape\n // Remove the section from the data array\n const before = geom.data.slice(0, startIndex);\n const after = geom.data.slice(endIndex);\n geom.data = before.concat(after);\n\n // Need to offset any remaining indices as we have\n // modified the data buffer\n offset += endIndex - startIndex;\n\n // Do not add this index to the output and process next shape\n continue;\n }\n\n if (ccw === undefined) ccw = area < 0;\n\n if (ccw === area < 0) {\n if (polygon) {\n areas.push(ringAreas);\n polygons.push(polygon);\n }\n polygon = [startIndex];\n ringAreas = [area];\n } else {\n // @ts-ignore\n ringAreas.push(area);\n // @ts-ignore\n polygon.push(startIndex);\n }\n }\n if (ringAreas) areas.push(ringAreas);\n if (polygon) polygons.push(polygon);\n\n return {areas, lines: polygons, data: geom.data};\n}\n\n// All code below is unchanged from the original Mapbox implemenation\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/binary-vector-tile/vector-tile-feature.js"],"names":["getPolygonSignedArea","endPos","cmd","cmdLen","length","x","y","i","TEST_EXPORTS","classifyRings","VectorTileFeature","types","constructor","pbf","end","extent","keys","values","firstPassData","properties","type","id","_pbf","_geometry","_keys","_values","_firstPassData","readFields","readFeature","loadGeometry","pos","readVarint","lines","data","readSVarint","push","start","Error","_toBinaryCoordinates","transform","geom","coordLength","pointFeaturesCount","pointPositionsCount","lineFeaturesCount","linePathsCount","linePositionsCount","classified","polygonFeaturesCount","polygonObjectsCount","polygonRingsCount","polygonPositionsCount","result","geometry","toBinaryCoordinates","options","z","size","Math","pow","x0","y0","project","j","jl","y2","PI","atan","exp","len","areas","polygons","ringAreas","polygon","ccw","offset","startIndex","endIndex","shape","slice","area","before","after","concat","undefined","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\nimport {getPolygonSignedArea} from '@math.gl/polygon';\n\n// Reduce GC by reusing variables\nlet endPos, cmd, cmdLen, length, x, y, i;\n\nexport const TEST_EXPORTS = {\n classifyRings\n};\n\nexport default class VectorTileFeature {\n static get types() {\n return ['Unknown', 'Point', 'LineString', 'Polygon'];\n }\n\n constructor(pbf, end, extent, keys, values, firstPassData) {\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 this._firstPassData = firstPassData;\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 endPos = pbf.readVarint() + pbf.pos;\n cmd = 1;\n length = 0;\n x = 0;\n y = 0;\n i = 0;\n\n // Note: I attempted to replace the `data` array with a\n // Float32Array, but performance was worse, both using\n // `set()` and direct index access. Also, we cannot\n // know how large the buffer should be, so it would\n // increase memory usage\n const lines = []; // Indices where lines start\n const data = []; // Flat array of coordinate data\n\n while (pbf.pos < endPos) {\n if (length <= 0) {\n 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 // New line\n lines.push(i);\n }\n data.push(x, y);\n i += 2;\n } else if (cmd === 7) {\n // Workaround for https://github.com/mapbox/mapnik-vector-tile/issues/90\n if (i > 0) {\n const start = lines[lines.length - 1]; // start index of polygon\n data.push(data[start], data[start + 1]); // closePolygon\n i += 2;\n }\n } else {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n return {data, lines};\n }\n\n _toBinaryCoordinates(transform) {\n // Expands the protobuf data to an intermediate `lines`\n // data format, which maps closely to the binary data buffers.\n // It is similar to GeoJSON, but rather than storing the coordinates\n // in multidimensional arrays, we have a 1D `data` with all the\n // coordinates, and then index into this using the `lines`\n // parameter, e.g.\n //\n // geometry: {\n // type: 'Point', data: [1,2], lines: [0]\n // }\n // geometry: {\n // type: 'LineString', data: [1,2,3,4,...], lines: [0]\n // }\n // geometry: {\n // type: 'Polygon', data: [1,2,3,4,...], lines: [[0, 2]]\n // }\n // Thus the lines member lets us look up the relevant range\n // from the data array.\n // The Multi* versions of the above types share the same data\n // structure, just with multiple elements in the lines array\n let geom = this.loadGeometry();\n\n // Apply the supplied transformation to data\n transform(geom.data, this);\n\n const coordLength = 2;\n\n switch (this.type) {\n case 1: // Point\n this._firstPassData.pointFeaturesCount++;\n this._firstPassData.pointPositionsCount += geom.lines.length;\n break;\n\n case 2: // LineString\n this._firstPassData.lineFeaturesCount++;\n this._firstPassData.linePathsCount += geom.lines.length;\n this._firstPassData.linePositionsCount += geom.data.length / coordLength;\n break;\n\n case 3: // Polygon\n const classified = classifyRings(geom);\n\n // Unlike Point & LineString geom.lines is a 2D array, thanks\n // to the classifyRings method\n this._firstPassData.polygonFeaturesCount++;\n this._firstPassData.polygonObjectsCount += classified.lines.length;\n\n for (const lines of classified.lines) {\n this._firstPassData.polygonRingsCount += lines.length;\n }\n this._firstPassData.polygonPositionsCount += classified.data.length / coordLength;\n\n // @ts-ignore\n geom = classified;\n break;\n }\n\n geom.type = VectorTileFeature.types[this.type];\n if (geom.lines.length > 1) {\n geom.type = `Multi${geom.type}`;\n }\n\n const result = {\n type: 'Feature',\n geometry: geom,\n properties: this.properties\n };\n\n if (this.id !== null) {\n result.id = this.id;\n }\n\n return result;\n }\n\n toBinaryCoordinates(options) {\n if (typeof options === 'function') {\n return this._toBinaryCoordinates(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(data) {\n for (let j = 0, jl = data.length; j < jl; j += 2) {\n data[j] = ((data[j] + x0) * 360) / size - 180;\n const y2 = 180 - ((data[j + 1] + y0) * 360) / size;\n data[j + 1] = (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;\n }\n }\n return this._toBinaryCoordinates(project);\n }\n}\n\n/**\n * Classifies an array of rings into polygons with outer rings and holes\n * The function also detects holes which have zero area and\n * removes them. In doing so it modifies the input\n * `geom.data` array to remove the unneeded data\n */\nfunction classifyRings(geom) {\n const len = geom.lines.length;\n\n if (len <= 1) {\n return {\n data: geom.data,\n areas: [[getPolygonSignedArea(geom.data)]],\n lines: [geom.lines]\n };\n }\n\n const areas = [];\n const polygons = [];\n let ringAreas;\n let polygon;\n let ccw;\n let offset = 0;\n\n for (let i = 0, startIndex, endIndex; i < len; i++) {\n startIndex = geom.lines[i] - offset;\n\n endIndex = geom.lines[i + 1] - offset || geom.data.length;\n const shape = geom.data.slice(startIndex, endIndex);\n const area = getPolygonSignedArea(shape);\n\n if (area === 0) {\n // This polygon has no area, so remove it from the shape\n // Remove the section from the data array\n const before = geom.data.slice(0, startIndex);\n const after = geom.data.slice(endIndex);\n geom.data = before.concat(after);\n\n // Need to offset any remaining indices as we have\n // modified the data buffer\n offset += endIndex - startIndex;\n\n // Do not add this index to the output and process next shape\n continue;\n }\n\n if (ccw === undefined) ccw = area < 0;\n\n if (ccw === area < 0) {\n if (polygon) {\n areas.push(ringAreas);\n polygons.push(polygon);\n }\n polygon = [startIndex];\n ringAreas = [area];\n } else {\n // @ts-ignore\n ringAreas.push(area);\n // @ts-ignore\n polygon.push(startIndex);\n }\n }\n if (ringAreas) areas.push(ringAreas);\n if (polygon) polygons.push(polygon);\n\n return {areas, lines: polygons, data: geom.data};\n}\n\n// All code below is unchanged from the original Mapbox implemenation\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"}
@@ -50,7 +50,7 @@ export default class VectorTileFeature {
50
50
  line.push(line[0].slice());
51
51
  }
52
52
  } else {
53
- throw new Error(`unknown command ${cmd}`);
53
+ throw new Error("unknown command ".concat(cmd));
54
54
  }
55
55
  }
56
56
 
@@ -88,7 +88,7 @@ export default class VectorTileFeature {
88
88
  if (y < y1) y1 = y;
89
89
  if (y > y2) y2 = y;
90
90
  } else if (cmd !== 7) {
91
- throw new Error(`unknown command ${cmd}`);
91
+ throw new Error("unknown command ".concat(cmd));
92
92
  }
93
93
  }
94
94
 
@@ -135,7 +135,7 @@ export default class VectorTileFeature {
135
135
  if (coords.length === 1) {
136
136
  coords = coords[0];
137
137
  } else {
138
- type = `Multi${type}`;
138
+ type = "Multi".concat(type);
139
139
  }
140
140
 
141
141
  const result = {
@@ -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","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,5 +1,5 @@
1
1
  import parseMVT from './lib/parse-mvt';
2
- const VERSION = typeof "3.0.12" !== 'undefined' ? "3.0.12" : 'latest';
2
+ const VERSION = typeof "3.0.13" !== 'undefined' ? "3.0.13" : 'latest';
3
3
  export const MVTWorkerLoader = {
4
4
  name: 'Mapbox Vector Tile',
5
5
  id: 'mvt',