@loaders.gl/mvt 3.4.13 → 3.4.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es5/bundle.js +1 -1
- package/dist/es5/bundle.js.map +1 -1
- package/dist/es5/helpers/binary-util-functions.js +21 -21
- package/dist/es5/helpers/binary-util-functions.js.map +1 -1
- package/dist/es5/helpers/mapbox-util-functions.js +11 -11
- package/dist/es5/helpers/mapbox-util-functions.js.map +1 -1
- package/dist/es5/index.js +3 -3
- package/dist/es5/lib/binary-vector-tile/vector-tile-feature.js +104 -127
- package/dist/es5/lib/binary-vector-tile/vector-tile-feature.js.map +1 -1
- package/dist/es5/lib/binary-vector-tile/vector-tile-layer.js +13 -20
- package/dist/es5/lib/binary-vector-tile/vector-tile-layer.js.map +1 -1
- package/dist/es5/lib/binary-vector-tile/vector-tile.js +7 -8
- package/dist/es5/lib/binary-vector-tile/vector-tile.js.map +1 -1
- package/dist/es5/lib/geojson-tiler/clip.js +87 -144
- package/dist/es5/lib/geojson-tiler/clip.js.map +1 -1
- package/dist/es5/lib/geojson-tiler/convert.js +33 -72
- package/dist/es5/lib/geojson-tiler/convert.js.map +1 -1
- package/dist/es5/lib/geojson-tiler/feature.js +8 -29
- package/dist/es5/lib/geojson-tiler/feature.js.map +1 -1
- package/dist/es5/lib/geojson-tiler/geojson-tiler.js +114 -121
- package/dist/es5/lib/geojson-tiler/geojson-tiler.js.map +1 -1
- package/dist/es5/lib/geojson-tiler/simplify.js +14 -14
- package/dist/es5/lib/geojson-tiler/simplify.js.map +1 -1
- package/dist/es5/lib/geojson-tiler/tile.js +31 -43
- package/dist/es5/lib/geojson-tiler/tile.js.map +1 -1
- package/dist/es5/lib/geojson-tiler/transform.js +17 -29
- package/dist/es5/lib/geojson-tiler/transform.js.map +1 -1
- package/dist/es5/lib/geojson-tiler/wrap.js +25 -73
- package/dist/es5/lib/geojson-tiler/wrap.js.map +1 -1
- package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.js +131 -144
- package/dist/es5/lib/mapbox-vector-tile/vector-tile-feature.js.map +1 -1
- package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.js +13 -20
- package/dist/es5/lib/mapbox-vector-tile/vector-tile-layer.js.map +1 -1
- package/dist/es5/lib/mapbox-vector-tile/vector-tile.js +7 -8
- package/dist/es5/lib/mapbox-vector-tile/vector-tile.js.map +1 -1
- package/dist/es5/lib/parse-mvt.js +38 -36
- package/dist/es5/lib/parse-mvt.js.map +1 -1
- package/dist/es5/mvt-loader.js +7 -27
- package/dist/es5/mvt-loader.js.map +1 -1
- package/dist/esm/mvt-loader.js +1 -1
- package/dist/mvt-worker.js +1 -1
- package/package.json +5 -5
|
@@ -5,15 +5,14 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = parseMVT;
|
|
8
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
8
|
var _gis = require("@loaders.gl/gis");
|
|
10
9
|
var _pbf = _interopRequireDefault(require("pbf"));
|
|
11
10
|
var _vectorTile = _interopRequireDefault(require("./mapbox-vector-tile/vector-tile"));
|
|
12
11
|
var _vectorTile2 = _interopRequireDefault(require("./binary-vector-tile/vector-tile"));
|
|
13
12
|
function parseMVT(arrayBuffer, options) {
|
|
14
13
|
var _options$gis, _options$mvt;
|
|
15
|
-
|
|
16
|
-
|
|
14
|
+
const mvtOptions = normalizeOptions(options);
|
|
15
|
+
const shape = (options === null || options === void 0 ? void 0 : (_options$gis = options.gis) === null || _options$gis === void 0 ? void 0 : _options$gis.format) || (options === null || options === void 0 ? void 0 : (_options$mvt = options.mvt) === null || _options$mvt === void 0 ? void 0 : _options$mvt.shape);
|
|
17
16
|
switch (shape) {
|
|
18
17
|
case 'columnar-table':
|
|
19
18
|
return {
|
|
@@ -22,7 +21,7 @@ function parseMVT(arrayBuffer, options) {
|
|
|
22
21
|
};
|
|
23
22
|
case 'geojson-row-table':
|
|
24
23
|
{
|
|
25
|
-
|
|
24
|
+
const table = {
|
|
26
25
|
shape: 'geojson-row-table',
|
|
27
26
|
data: parseToGeojson(arrayBuffer, mvtOptions)
|
|
28
27
|
};
|
|
@@ -39,17 +38,14 @@ function parseMVT(arrayBuffer, options) {
|
|
|
39
38
|
}
|
|
40
39
|
}
|
|
41
40
|
function parseToBinary(arrayBuffer, options) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
flatGeoJsonFeatures = _parseToFlatGeoJson2[0],
|
|
45
|
-
geometryInfo = _parseToFlatGeoJson2[1];
|
|
46
|
-
var binaryData = (0, _gis.flatGeojsonToBinary)(flatGeoJsonFeatures, geometryInfo);
|
|
41
|
+
const [flatGeoJsonFeatures, geometryInfo] = parseToFlatGeoJson(arrayBuffer, options);
|
|
42
|
+
const binaryData = (0, _gis.flatGeojsonToBinary)(flatGeoJsonFeatures, geometryInfo);
|
|
47
43
|
binaryData.byteLength = arrayBuffer.byteLength;
|
|
48
44
|
return binaryData;
|
|
49
45
|
}
|
|
50
46
|
function parseToFlatGeoJson(arrayBuffer, options) {
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
const features = [];
|
|
48
|
+
const geometryInfo = {
|
|
53
49
|
coordLength: 2,
|
|
54
50
|
pointPositionsCount: 0,
|
|
55
51
|
pointFeaturesCount: 0,
|
|
@@ -64,16 +60,16 @@ function parseToFlatGeoJson(arrayBuffer, options) {
|
|
|
64
60
|
if (arrayBuffer.byteLength <= 0) {
|
|
65
61
|
return [features, geometryInfo];
|
|
66
62
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
selectedLayers.forEach(
|
|
70
|
-
|
|
63
|
+
const tile = new _vectorTile2.default(new _pbf.default(arrayBuffer));
|
|
64
|
+
const selectedLayers = options && Array.isArray(options.layers) ? options.layers : Object.keys(tile.layers);
|
|
65
|
+
selectedLayers.forEach(layerName => {
|
|
66
|
+
const vectorTileLayer = tile.layers[layerName];
|
|
71
67
|
if (!vectorTileLayer) {
|
|
72
68
|
return;
|
|
73
69
|
}
|
|
74
|
-
for (
|
|
75
|
-
|
|
76
|
-
|
|
70
|
+
for (let i = 0; i < vectorTileLayer.length; i++) {
|
|
71
|
+
const vectorTileFeature = vectorTileLayer.feature(i, geometryInfo);
|
|
72
|
+
const decodedFeature = getDecodedFeatureBinary(vectorTileFeature, options, layerName);
|
|
77
73
|
features.push(decodedFeature);
|
|
78
74
|
}
|
|
79
75
|
});
|
|
@@ -83,17 +79,17 @@ function parseToGeojson(arrayBuffer, options) {
|
|
|
83
79
|
if (arrayBuffer.byteLength <= 0) {
|
|
84
80
|
return [];
|
|
85
81
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
selectedLayers.forEach(
|
|
90
|
-
|
|
82
|
+
const features = [];
|
|
83
|
+
const tile = new _vectorTile.default(new _pbf.default(arrayBuffer));
|
|
84
|
+
const selectedLayers = Array.isArray(options.layers) ? options.layers : Object.keys(tile.layers);
|
|
85
|
+
selectedLayers.forEach(layerName => {
|
|
86
|
+
const vectorTileLayer = tile.layers[layerName];
|
|
91
87
|
if (!vectorTileLayer) {
|
|
92
88
|
return;
|
|
93
89
|
}
|
|
94
|
-
for (
|
|
95
|
-
|
|
96
|
-
|
|
90
|
+
for (let i = 0; i < vectorTileLayer.length; i++) {
|
|
91
|
+
const vectorTileFeature = vectorTileLayer.feature(i);
|
|
92
|
+
const decodedFeature = getDecodedFeature(vectorTileFeature, options, layerName);
|
|
97
93
|
features.push(decodedFeature);
|
|
98
94
|
}
|
|
99
95
|
});
|
|
@@ -104,39 +100,45 @@ function normalizeOptions(options) {
|
|
|
104
100
|
if (!(options !== null && options !== void 0 && options.mvt)) {
|
|
105
101
|
throw new Error('mvt options required');
|
|
106
102
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
103
|
+
const wgs84Coordinates = ((_options$mvt2 = options.mvt) === null || _options$mvt2 === void 0 ? void 0 : _options$mvt2.coordinates) === 'wgs84';
|
|
104
|
+
const {
|
|
105
|
+
tileIndex
|
|
106
|
+
} = options.mvt;
|
|
107
|
+
const hasTileIndex = tileIndex && Number.isFinite(tileIndex.x) && Number.isFinite(tileIndex.y) && Number.isFinite(tileIndex.z);
|
|
110
108
|
if (wgs84Coordinates && !hasTileIndex) {
|
|
111
109
|
throw new Error('MVT Loader: WGS84 coordinates need tileIndex property');
|
|
112
110
|
}
|
|
113
111
|
return options.mvt;
|
|
114
112
|
}
|
|
115
113
|
function getDecodedFeature(feature, options, layerName) {
|
|
116
|
-
|
|
114
|
+
const decodedFeature = feature.toGeoJSON(options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinates);
|
|
117
115
|
if (options.layerProperty) {
|
|
118
116
|
decodedFeature.properties[options.layerProperty] = layerName;
|
|
119
117
|
}
|
|
120
118
|
return decodedFeature;
|
|
121
119
|
}
|
|
122
120
|
function getDecodedFeatureBinary(feature, options, layerName) {
|
|
123
|
-
|
|
121
|
+
const decodedFeature = feature.toBinaryCoordinates(options.coordinates === 'wgs84' ? options.tileIndex : transformToLocalCoordinatesBinary);
|
|
124
122
|
if (options.layerProperty && decodedFeature.properties) {
|
|
125
123
|
decodedFeature.properties[options.layerProperty] = layerName;
|
|
126
124
|
}
|
|
127
125
|
return decodedFeature;
|
|
128
126
|
}
|
|
129
127
|
function transformToLocalCoordinates(line, feature) {
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
128
|
+
const {
|
|
129
|
+
extent
|
|
130
|
+
} = feature;
|
|
131
|
+
for (let i = 0; i < line.length; i++) {
|
|
132
|
+
const p = line[i];
|
|
133
133
|
p[0] /= extent;
|
|
134
134
|
p[1] /= extent;
|
|
135
135
|
}
|
|
136
136
|
}
|
|
137
137
|
function transformToLocalCoordinatesBinary(data, feature) {
|
|
138
|
-
|
|
139
|
-
|
|
138
|
+
const {
|
|
139
|
+
extent
|
|
140
|
+
} = feature;
|
|
141
|
+
for (let i = 0, il = data.length; i < il; ++i) {
|
|
140
142
|
data[i] /= extent;
|
|
141
143
|
}
|
|
142
144
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse-mvt.js","names":["_gis","require","_pbf","_interopRequireDefault","_vectorTile","_vectorTile2","parseMVT","arrayBuffer","options","_options$gis","_options$mvt","mvtOptions","normalizeOptions","shape","gis","format","mvt","data","parseToBinary","table","parseToGeojson","Error","_parseToFlatGeoJson","parseToFlatGeoJson","_parseToFlatGeoJson2","_slicedToArray2","default","flatGeoJsonFeatures","geometryInfo","binaryData","flatGeojsonToBinary","byteLength","features","coordLength","pointPositionsCount","pointFeaturesCount","linePositionsCount","linePathsCount","lineFeaturesCount","polygonPositionsCount","polygonObjectsCount","polygonRingsCount","polygonFeaturesCount","tile","BinaryVectorTile","Protobuf","selectedLayers","Array","isArray","layers","Object","keys","forEach","layerName","vectorTileLayer","i","length","vectorTileFeature","feature","decodedFeature","getDecodedFeatureBinary","push","VectorTile","getDecodedFeature","_options$mvt2","wgs84Coordinates","coordinates","tileIndex","hasTileIndex","Number","isFinite","x","y","z","toGeoJSON","transformToLocalCoordinates","layerProperty","properties","toBinaryCoordinates","transformToLocalCoordinatesBinary","line","extent","p","il"],"sources":["../../../src/lib/parse-mvt.ts"],"sourcesContent":["import {flatGeojsonToBinary} from '@loaders.gl/gis';\nimport type {\n FlatFeature,\n Feature,\n GeojsonGeometryInfo,\n BinaryFeatures,\n GeoJSONRowTable\n} from '@loaders.gl/schema';\nimport Protobuf from 'pbf';\n\nimport type {MVTMapboxCoordinates, MVTOptions, MVTLoaderOptions} from '../lib/types';\n\nimport VectorTile from './mapbox-vector-tile/vector-tile';\nimport BinaryVectorTile from './binary-vector-tile/vector-tile';\nimport VectorTileFeatureBinary from './binary-vector-tile/vector-tile-feature';\nimport VectorTileFeatureMapBox from './mapbox-vector-tile/vector-tile-feature';\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?: MVTLoaderOptions) {\n const mvtOptions = normalizeOptions(options);\n\n const shape = options?.gis?.format || options?.mvt?.shape;\n switch (shape) {\n case 'columnar-table': // binary + some JS arrays\n return {shape: 'columnar-table', data: parseToBinary(arrayBuffer, mvtOptions)};\n case 'geojson-row-table': {\n const table: GeoJSONRowTable = {\n shape: 'geojson-row-table',\n data: parseToGeojson(arrayBuffer, mvtOptions)\n };\n return table;\n }\n case 'geojson':\n return parseToGeojson(arrayBuffer, mvtOptions);\n case 'binary-geometry':\n return parseToBinary(arrayBuffer, mvtOptions);\n case 'binary':\n return parseToBinary(arrayBuffer, mvtOptions);\n default:\n throw new Error(shape);\n }\n}\n\nfunction parseToBinary(arrayBuffer: ArrayBuffer, options: MVTOptions): BinaryFeatures {\n const [flatGeoJsonFeatures, geometryInfo] = parseToFlatGeoJson(arrayBuffer, options);\n\n const binaryData = flatGeojsonToBinary(flatGeoJsonFeatures, geometryInfo);\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 binaryData.byteLength = arrayBuffer.byteLength;\n return binaryData;\n}\n\nfunction parseToFlatGeoJson(\n arrayBuffer: ArrayBuffer,\n options: MVTOptions\n): [FlatFeature[], GeojsonGeometryInfo] {\n const features: FlatFeature[] = [];\n const geometryInfo: GeojsonGeometryInfo = {\n coordLength: 2,\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 return [features, geometryInfo];\n }\n\n const tile = new BinaryVectorTile(new Protobuf(arrayBuffer));\n\n const selectedLayers =\n options && Array.isArray(options.layers) ? options.layers : Object.keys(tile.layers);\n\n selectedLayers.forEach((layerName: string) => {\n const vectorTileLayer = tile.layers[layerName];\n if (!vectorTileLayer) {\n return;\n }\n\n for (let i = 0; i < vectorTileLayer.length; i++) {\n const vectorTileFeature = vectorTileLayer.feature(i, geometryInfo);\n const decodedFeature = getDecodedFeatureBinary(vectorTileFeature, options, layerName);\n features.push(decodedFeature);\n }\n });\n\n return [features, geometryInfo];\n}\n\nfunction parseToGeojson(arrayBuffer: ArrayBuffer, options: MVTOptions): Feature[] {\n if (arrayBuffer.byteLength <= 0) {\n return [];\n }\n\n const features: MVTMapboxCoordinates[] = [];\n const tile = new VectorTile(new Protobuf(arrayBuffer));\n\n const selectedLayers = Array.isArray(options.layers) ? options.layers : Object.keys(tile.layers);\n\n selectedLayers.forEach((layerName: string) => {\n const vectorTileLayer = tile.layers[layerName];\n if (!vectorTileLayer) {\n return;\n }\n\n for (let i = 0; i < vectorTileLayer.length; i++) {\n const vectorTileFeature = vectorTileLayer.feature(i);\n const decodedFeature = getDecodedFeature(vectorTileFeature, options, layerName);\n features.push(decodedFeature);\n }\n });\n\n return features as Feature[];\n}\n\nfunction normalizeOptions(options?: MVTLoaderOptions): MVTOptions {\n if (!options?.mvt) {\n throw new Error('mvt options required');\n }\n\n // Validate\n const wgs84Coordinates = options.mvt?.coordinates === 'wgs84';\n const {tileIndex} = options.mvt;\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');\n }\n\n return options.mvt;\n}\n\n/**\n * @param feature\n * @param options\n * @returns decoded feature\n */\nfunction getDecodedFeature(\n feature: VectorTileFeatureMapBox,\n options: MVTOptions,\n layerName: string\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] = 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 layerName: string\n): FlatFeature {\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 && decodedFeature.properties) {\n decodedFeature.properties[options.layerProperty] = 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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parse-mvt.js","names":["_gis","require","_pbf","_interopRequireDefault","_vectorTile","_vectorTile2","parseMVT","arrayBuffer","options","_options$gis","_options$mvt","mvtOptions","normalizeOptions","shape","gis","format","mvt","data","parseToBinary","table","parseToGeojson","Error","flatGeoJsonFeatures","geometryInfo","parseToFlatGeoJson","binaryData","flatGeojsonToBinary","byteLength","features","coordLength","pointPositionsCount","pointFeaturesCount","linePositionsCount","linePathsCount","lineFeaturesCount","polygonPositionsCount","polygonObjectsCount","polygonRingsCount","polygonFeaturesCount","tile","BinaryVectorTile","Protobuf","selectedLayers","Array","isArray","layers","Object","keys","forEach","layerName","vectorTileLayer","i","length","vectorTileFeature","feature","decodedFeature","getDecodedFeatureBinary","push","VectorTile","getDecodedFeature","_options$mvt2","wgs84Coordinates","coordinates","tileIndex","hasTileIndex","Number","isFinite","x","y","z","toGeoJSON","transformToLocalCoordinates","layerProperty","properties","toBinaryCoordinates","transformToLocalCoordinatesBinary","line","extent","p","il"],"sources":["../../../src/lib/parse-mvt.ts"],"sourcesContent":["import {flatGeojsonToBinary} from '@loaders.gl/gis';\nimport type {\n FlatFeature,\n Feature,\n GeojsonGeometryInfo,\n BinaryFeatures,\n GeoJSONRowTable\n} from '@loaders.gl/schema';\nimport Protobuf from 'pbf';\n\nimport type {MVTMapboxCoordinates, MVTOptions, MVTLoaderOptions} from '../lib/types';\n\nimport VectorTile from './mapbox-vector-tile/vector-tile';\nimport BinaryVectorTile from './binary-vector-tile/vector-tile';\nimport VectorTileFeatureBinary from './binary-vector-tile/vector-tile-feature';\nimport VectorTileFeatureMapBox from './mapbox-vector-tile/vector-tile-feature';\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?: MVTLoaderOptions) {\n const mvtOptions = normalizeOptions(options);\n\n const shape = options?.gis?.format || options?.mvt?.shape;\n switch (shape) {\n case 'columnar-table': // binary + some JS arrays\n return {shape: 'columnar-table', data: parseToBinary(arrayBuffer, mvtOptions)};\n case 'geojson-row-table': {\n const table: GeoJSONRowTable = {\n shape: 'geojson-row-table',\n data: parseToGeojson(arrayBuffer, mvtOptions)\n };\n return table;\n }\n case 'geojson':\n return parseToGeojson(arrayBuffer, mvtOptions);\n case 'binary-geometry':\n return parseToBinary(arrayBuffer, mvtOptions);\n case 'binary':\n return parseToBinary(arrayBuffer, mvtOptions);\n default:\n throw new Error(shape);\n }\n}\n\nfunction parseToBinary(arrayBuffer: ArrayBuffer, options: MVTOptions): BinaryFeatures {\n const [flatGeoJsonFeatures, geometryInfo] = parseToFlatGeoJson(arrayBuffer, options);\n\n const binaryData = flatGeojsonToBinary(flatGeoJsonFeatures, geometryInfo);\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 binaryData.byteLength = arrayBuffer.byteLength;\n return binaryData;\n}\n\nfunction parseToFlatGeoJson(\n arrayBuffer: ArrayBuffer,\n options: MVTOptions\n): [FlatFeature[], GeojsonGeometryInfo] {\n const features: FlatFeature[] = [];\n const geometryInfo: GeojsonGeometryInfo = {\n coordLength: 2,\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 return [features, geometryInfo];\n }\n\n const tile = new BinaryVectorTile(new Protobuf(arrayBuffer));\n\n const selectedLayers =\n options && Array.isArray(options.layers) ? options.layers : Object.keys(tile.layers);\n\n selectedLayers.forEach((layerName: string) => {\n const vectorTileLayer = tile.layers[layerName];\n if (!vectorTileLayer) {\n return;\n }\n\n for (let i = 0; i < vectorTileLayer.length; i++) {\n const vectorTileFeature = vectorTileLayer.feature(i, geometryInfo);\n const decodedFeature = getDecodedFeatureBinary(vectorTileFeature, options, layerName);\n features.push(decodedFeature);\n }\n });\n\n return [features, geometryInfo];\n}\n\nfunction parseToGeojson(arrayBuffer: ArrayBuffer, options: MVTOptions): Feature[] {\n if (arrayBuffer.byteLength <= 0) {\n return [];\n }\n\n const features: MVTMapboxCoordinates[] = [];\n const tile = new VectorTile(new Protobuf(arrayBuffer));\n\n const selectedLayers = Array.isArray(options.layers) ? options.layers : Object.keys(tile.layers);\n\n selectedLayers.forEach((layerName: string) => {\n const vectorTileLayer = tile.layers[layerName];\n if (!vectorTileLayer) {\n return;\n }\n\n for (let i = 0; i < vectorTileLayer.length; i++) {\n const vectorTileFeature = vectorTileLayer.feature(i);\n const decodedFeature = getDecodedFeature(vectorTileFeature, options, layerName);\n features.push(decodedFeature);\n }\n });\n\n return features as Feature[];\n}\n\nfunction normalizeOptions(options?: MVTLoaderOptions): MVTOptions {\n if (!options?.mvt) {\n throw new Error('mvt options required');\n }\n\n // Validate\n const wgs84Coordinates = options.mvt?.coordinates === 'wgs84';\n const {tileIndex} = options.mvt;\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');\n }\n\n return options.mvt;\n}\n\n/**\n * @param feature\n * @param options\n * @returns decoded feature\n */\nfunction getDecodedFeature(\n feature: VectorTileFeatureMapBox,\n options: MVTOptions,\n layerName: string\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] = 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 layerName: string\n): FlatFeature {\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 && decodedFeature.properties) {\n decodedFeature.properties[options.layerProperty] = 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"],"mappings":"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"}
|
package/dist/es5/mvt-loader.js
CHANGED
|
@@ -5,14 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.MVTWorkerLoader = exports.MVTLoader = void 0;
|
|
8
|
-
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
9
|
-
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
8
|
var _parseMvt = _interopRequireDefault(require("./lib/parse-mvt"));
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
var VERSION = typeof "3.4.13" !== 'undefined' ? "3.4.13" : 'latest';
|
|
15
|
-
var DEFAULT_MVT_LOADER_OPTIONS = {
|
|
9
|
+
const VERSION = typeof "3.4.15" !== 'undefined' ? "3.4.15" : 'latest';
|
|
10
|
+
const DEFAULT_MVT_LOADER_OPTIONS = {
|
|
16
11
|
mvt: {
|
|
17
12
|
shape: 'geojson',
|
|
18
13
|
coordinates: 'local',
|
|
@@ -21,7 +16,7 @@ var DEFAULT_MVT_LOADER_OPTIONS = {
|
|
|
21
16
|
tileIndex: null
|
|
22
17
|
}
|
|
23
18
|
};
|
|
24
|
-
|
|
19
|
+
const MVTWorkerLoader = {
|
|
25
20
|
name: 'Mapbox Vector Tile',
|
|
26
21
|
id: 'mvt',
|
|
27
22
|
module: 'mvt',
|
|
@@ -33,26 +28,11 @@ var MVTWorkerLoader = {
|
|
|
33
28
|
options: DEFAULT_MVT_LOADER_OPTIONS
|
|
34
29
|
};
|
|
35
30
|
exports.MVTWorkerLoader = MVTWorkerLoader;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
return _regenerator.default.wrap(function _callee$(_context) {
|
|
40
|
-
while (1) switch (_context.prev = _context.next) {
|
|
41
|
-
case 0:
|
|
42
|
-
return _context.abrupt("return", (0, _parseMvt.default)(arrayBuffer, options));
|
|
43
|
-
case 1:
|
|
44
|
-
case "end":
|
|
45
|
-
return _context.stop();
|
|
46
|
-
}
|
|
47
|
-
}, _callee);
|
|
48
|
-
}));
|
|
49
|
-
function parse(_x, _x2) {
|
|
50
|
-
return _parse.apply(this, arguments);
|
|
51
|
-
}
|
|
52
|
-
return parse;
|
|
53
|
-
}(),
|
|
31
|
+
const MVTLoader = {
|
|
32
|
+
...MVTWorkerLoader,
|
|
33
|
+
parse: async (arrayBuffer, options) => (0, _parseMvt.default)(arrayBuffer, options),
|
|
54
34
|
parseSync: _parseMvt.default,
|
|
55
35
|
binary: true
|
|
56
|
-
}
|
|
36
|
+
};
|
|
57
37
|
exports.MVTLoader = MVTLoader;
|
|
58
38
|
//# sourceMappingURL=mvt-loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mvt-loader.js","names":["_parseMvt","_interopRequireDefault","require","
|
|
1
|
+
{"version":3,"file":"mvt-loader.js","names":["_parseMvt","_interopRequireDefault","require","VERSION","DEFAULT_MVT_LOADER_OPTIONS","mvt","shape","coordinates","layerProperty","layers","undefined","tileIndex","MVTWorkerLoader","name","id","module","version","extensions","mimeTypes","worker","category","options","exports","MVTLoader","parse","arrayBuffer","parseMVT","parseSync","binary"],"sources":["../../src/mvt-loader.ts"],"sourcesContent":["import type {Loader, LoaderWithParser} from '@loaders.gl/loader-utils';\nimport type {MVTLoaderOptions} from './lib/types';\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\nconst DEFAULT_MVT_LOADER_OPTIONS: MVTLoaderOptions = {\n mvt: {\n shape: 'geojson',\n coordinates: 'local',\n layerProperty: 'layerName',\n layers: undefined,\n tileIndex: null\n }\n};\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: DEFAULT_MVT_LOADER_OPTIONS\n};\n\n/**\n * Loader for the Mapbox Vector Tile format\n */\nexport const MVTLoader: LoaderWithParser = {\n ...MVTWorkerLoader,\n parse: async (arrayBuffer, options?: MVTLoaderOptions) => parseMVT(arrayBuffer, options),\n parseSync: parseMVT,\n binary: true\n};\n"],"mappings":";;;;;;;AAEA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAIA,MAAMC,OAAO,GAAG,eAAkB,KAAK,WAAW,cAAiB,QAAQ;AAE3E,MAAMC,0BAA4C,GAAG;EACnDC,GAAG,EAAE;IACHC,KAAK,EAAE,SAAS;IAChBC,WAAW,EAAE,OAAO;IACpBC,aAAa,EAAE,WAAW;IAC1BC,MAAM,EAAEC,SAAS;IACjBC,SAAS,EAAE;EACb;AACF,CAAC;AAKM,MAAMC,eAAuB,GAAG;EACrCC,IAAI,EAAE,oBAAoB;EAC1BC,EAAE,EAAE,KAAK;EACTC,MAAM,EAAE,KAAK;EACbC,OAAO,EAAEb,OAAO;EAEhBc,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC;EAC1BC,SAAS,EAAE,CACT,oCAAoC,EACpC,wBAAwB,CAEzB;EACDC,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAEjB;AACX,CAAC;AAACkB,OAAA,CAAAV,eAAA,GAAAA,eAAA;AAKK,MAAMW,SAA2B,GAAG;EACzC,GAAGX,eAAe;EAClBY,KAAK,EAAE,MAAAA,CAAOC,WAAW,EAAEJ,OAA0B,KAAK,IAAAK,iBAAQ,EAACD,WAAW,EAAEJ,OAAO,CAAC;EACxFM,SAAS,EAAED,iBAAQ;EACnBE,MAAM,EAAE;AACV,CAAC;AAACN,OAAA,CAAAC,SAAA,GAAAA,SAAA"}
|
package/dist/esm/mvt-loader.js
CHANGED
package/dist/mvt-worker.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/mvt",
|
|
3
3
|
"description": "Loader for Mapbox Vector Tiles",
|
|
4
|
-
"version": "3.4.
|
|
4
|
+
"version": "3.4.15",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"publishConfig": {
|
|
7
7
|
"access": "public"
|
|
@@ -32,14 +32,14 @@
|
|
|
32
32
|
"build-worker": "esbuild src/workers/mvt-worker.ts --bundle --outfile=dist/mvt-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
33
33
|
},
|
|
34
34
|
"dependencies": {
|
|
35
|
-
"@loaders.gl/gis": "3.4.
|
|
36
|
-
"@loaders.gl/loader-utils": "3.4.
|
|
37
|
-
"@loaders.gl/schema": "3.4.
|
|
35
|
+
"@loaders.gl/gis": "3.4.15",
|
|
36
|
+
"@loaders.gl/loader-utils": "3.4.15",
|
|
37
|
+
"@loaders.gl/schema": "3.4.15",
|
|
38
38
|
"@math.gl/polygon": "^3.5.1",
|
|
39
39
|
"pbf": "^3.2.1"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
42
|
"@types/pbf": "^3.0.2"
|
|
43
43
|
},
|
|
44
|
-
"gitHead": "
|
|
44
|
+
"gitHead": "19e941d5805568e449ef9092490d6568a4853298"
|
|
45
45
|
}
|