@loaders.gl/mvt 4.3.0-alpha.2 → 4.3.0-alpha.3
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/dist.dev.js +777 -688
- package/dist/dist.min.js +1 -1
- package/dist/index.cjs +746 -659
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +6 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/lib/parse-tilejson.js +1 -1
- package/dist/lib/utils/geometry-utils.js +1 -1
- package/dist/lib/vector-tiler/{clip.d.ts → features/clip-features.d.ts} +4 -4
- package/dist/lib/vector-tiler/features/clip-features.d.ts.map +1 -0
- package/dist/lib/vector-tiler/{clip.js → features/clip-features.js} +4 -4
- package/dist/lib/vector-tiler/{convert.d.ts → features/convert-feature.d.ts} +7 -7
- package/dist/lib/vector-tiler/features/convert-feature.d.ts.map +1 -0
- package/dist/lib/vector-tiler/features/convert-feature.js +140 -0
- package/dist/lib/vector-tiler/features/proto-feature.d.ts +30 -0
- package/dist/lib/vector-tiler/features/proto-feature.d.ts.map +1 -0
- package/dist/lib/vector-tiler/features/proto-feature.js +52 -0
- package/dist/lib/vector-tiler/{simplify.d.ts → features/simplify-path.d.ts} +2 -2
- package/dist/lib/vector-tiler/features/simplify-path.d.ts.map +1 -0
- package/dist/lib/vector-tiler/{simplify.js → features/simplify-path.js} +3 -3
- package/dist/lib/vector-tiler/{wrap.d.ts → features/wrap-features.d.ts} +5 -5
- package/dist/lib/vector-tiler/features/wrap-features.d.ts.map +1 -0
- package/dist/lib/vector-tiler/{wrap.js → features/wrap-features.js} +33 -26
- package/dist/lib/vector-tiler/proto-tile.d.ts +40 -0
- package/dist/lib/vector-tiler/proto-tile.d.ts.map +1 -0
- package/dist/lib/vector-tiler/proto-tile.js +138 -0
- package/dist/lib/vector-tiler/tile-to-geojson.d.ts +12 -0
- package/dist/lib/vector-tiler/tile-to-geojson.d.ts.map +1 -0
- package/dist/lib/vector-tiler/tile-to-geojson.js +81 -0
- package/dist/lib/vector-tiler/transform-tile.d.ts +7 -0
- package/dist/lib/vector-tiler/transform-tile.d.ts.map +1 -0
- package/dist/lib/vector-tiler/transform-tile.js +41 -0
- package/dist/mvt-loader.js +1 -1
- package/dist/mvt-source.d.ts +31 -14
- package/dist/mvt-source.d.ts.map +1 -1
- package/dist/mvt-source.js +26 -6
- package/dist/mvt-worker.js +4 -4
- package/dist/table-tile-source.d.ts +66 -36
- package/dist/table-tile-source.d.ts.map +1 -1
- package/dist/table-tile-source.js +167 -117
- package/dist/tilejson-loader.js +1 -1
- package/package.json +6 -6
- package/src/index.ts +13 -6
- package/src/lib/parse-tilejson.ts +1 -1
- package/src/lib/utils/geometry-utils.ts +1 -1
- package/src/lib/vector-tiler/{clip.ts → features/clip-features.ts} +8 -8
- package/src/lib/vector-tiler/{convert.ts → features/convert-feature.ts} +91 -70
- package/src/lib/vector-tiler/features/proto-feature.ts +104 -0
- package/src/lib/vector-tiler/{simplify.ts → features/simplify-path.ts} +8 -3
- package/src/lib/vector-tiler/{wrap.ts → features/wrap-features.ts} +44 -29
- package/src/lib/vector-tiler/proto-tile.ts +217 -0
- package/src/lib/vector-tiler/tile-to-geojson.ts +105 -0
- package/src/lib/vector-tiler/transform-tile.ts +57 -0
- package/src/mvt-source.ts +42 -18
- package/src/table-tile-source.ts +130 -85
- package/src/tilejson-loader.ts +2 -2
- package/dist/lib/vector-tiler/clip.d.ts.map +0 -1
- package/dist/lib/vector-tiler/convert.d.ts.map +0 -1
- package/dist/lib/vector-tiler/convert.js +0 -139
- package/dist/lib/vector-tiler/feature.d.ts +0 -3
- package/dist/lib/vector-tiler/feature.d.ts.map +0 -1
- package/dist/lib/vector-tiler/feature.js +0 -44
- package/dist/lib/vector-tiler/simplify.d.ts.map +0 -1
- package/dist/lib/vector-tiler/tile.d.ts +0 -38
- package/dist/lib/vector-tiler/tile.d.ts.map +0 -1
- package/dist/lib/vector-tiler/tile.js +0 -123
- package/dist/lib/vector-tiler/transform.d.ts +0 -7
- package/dist/lib/vector-tiler/transform.d.ts.map +0 -1
- package/dist/lib/vector-tiler/transform.js +0 -41
- package/dist/lib/vector-tiler/wrap.d.ts.map +0 -1
- package/src/lib/vector-tiler/feature.ts +0 -47
- package/src/lib/vector-tiler/tile.ts +0 -187
- package/src/lib/vector-tiler/transform.ts +0 -57
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
// Forked from https://github.com/mapbox/geojson-vt under compatible ISC license
|
|
5
|
+
/**
|
|
6
|
+
* Create a tile from features and tile index
|
|
7
|
+
*/
|
|
8
|
+
export function createProtoTile(features, z, tx, ty, options) {
|
|
9
|
+
const tolerance = z === options.maxZoom ? 0 : options.tolerance / ((1 << z) * options.extent);
|
|
10
|
+
const tile = {
|
|
11
|
+
protoFeatures: [],
|
|
12
|
+
sourceFeatures: null,
|
|
13
|
+
numPoints: 0,
|
|
14
|
+
numSimplified: 0,
|
|
15
|
+
numFeatures: features.length,
|
|
16
|
+
x: tx,
|
|
17
|
+
y: ty,
|
|
18
|
+
z,
|
|
19
|
+
transformed: false,
|
|
20
|
+
minX: 2,
|
|
21
|
+
minY: 1,
|
|
22
|
+
maxX: -1,
|
|
23
|
+
maxY: 0
|
|
24
|
+
};
|
|
25
|
+
for (const feature of features) {
|
|
26
|
+
addProtoFeature(tile, feature, tolerance, options);
|
|
27
|
+
}
|
|
28
|
+
return tile;
|
|
29
|
+
}
|
|
30
|
+
// eslint-disable-next-line complexity, max-statements
|
|
31
|
+
function addProtoFeature(tile, feature, tolerance, options) {
|
|
32
|
+
const geometry = feature.geometry;
|
|
33
|
+
const type = feature.type;
|
|
34
|
+
const simplifiedGeometry = [];
|
|
35
|
+
tile.minX = Math.min(tile.minX, feature.minX);
|
|
36
|
+
tile.minY = Math.min(tile.minY, feature.minY);
|
|
37
|
+
tile.maxX = Math.max(tile.maxX, feature.maxX);
|
|
38
|
+
tile.maxY = Math.max(tile.maxY, feature.maxY);
|
|
39
|
+
let simplifiedType;
|
|
40
|
+
switch (type) {
|
|
41
|
+
case 'Point':
|
|
42
|
+
case 'MultiPoint':
|
|
43
|
+
simplifiedType = 1;
|
|
44
|
+
for (let i = 0; i < geometry.length; i += 3) {
|
|
45
|
+
simplifiedGeometry.push(geometry[i], geometry[i + 1]);
|
|
46
|
+
tile.numPoints++;
|
|
47
|
+
tile.numSimplified++;
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
case 'LineString':
|
|
51
|
+
simplifiedType = 2;
|
|
52
|
+
addProtoLine(simplifiedGeometry, geometry, tile, tolerance, false, false);
|
|
53
|
+
break;
|
|
54
|
+
case 'MultiLineString':
|
|
55
|
+
simplifiedType = 2;
|
|
56
|
+
for (let i = 0; i < geometry.length; i++) {
|
|
57
|
+
addProtoLine(simplifiedGeometry, geometry[i], tile, tolerance, false, i === 0);
|
|
58
|
+
}
|
|
59
|
+
break;
|
|
60
|
+
case 'Polygon':
|
|
61
|
+
simplifiedType = 3;
|
|
62
|
+
for (let i = 0; i < geometry.length; i++) {
|
|
63
|
+
addProtoLine(simplifiedGeometry, geometry[i], tile, tolerance, true, i === 0);
|
|
64
|
+
}
|
|
65
|
+
break;
|
|
66
|
+
case 'MultiPolygon':
|
|
67
|
+
simplifiedType = 3;
|
|
68
|
+
for (let k = 0; k < geometry.length; k++) {
|
|
69
|
+
const polygon = geometry[k];
|
|
70
|
+
for (let i = 0; i < polygon.length; i++) {
|
|
71
|
+
addProtoLine(simplifiedGeometry, polygon[i], tile, tolerance, true, i === 0);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
break;
|
|
75
|
+
default:
|
|
76
|
+
throw new Error(`Unknown geometry type: ${type}`);
|
|
77
|
+
}
|
|
78
|
+
if (simplifiedGeometry.length) {
|
|
79
|
+
let tags = feature.tags || null;
|
|
80
|
+
if (type === 'LineString' && options.lineMetrics) {
|
|
81
|
+
tags = {};
|
|
82
|
+
for (const key in feature.tags) {
|
|
83
|
+
tags[key] = feature.tags[key];
|
|
84
|
+
}
|
|
85
|
+
// @ts-expect-error adding fields to arrays
|
|
86
|
+
// eslint-disable-next-line camelcase
|
|
87
|
+
tags.mapbox_clip_start = geometry.start / geometry.size;
|
|
88
|
+
// @ts-expect-error adding fields to arrays
|
|
89
|
+
// eslint-disable-next-line camelcase
|
|
90
|
+
tags.mapbox_clip_end = geometry.end / geometry.size;
|
|
91
|
+
}
|
|
92
|
+
const tileFeature = {
|
|
93
|
+
geometry: simplifiedGeometry,
|
|
94
|
+
simplifiedType,
|
|
95
|
+
// @ts-expect-error
|
|
96
|
+
tags
|
|
97
|
+
};
|
|
98
|
+
if (feature.id !== null) {
|
|
99
|
+
tileFeature.id = feature.id;
|
|
100
|
+
}
|
|
101
|
+
tile.protoFeatures.push(tileFeature);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
// eslint-disable-next-line max-params, max-statements
|
|
105
|
+
function addProtoLine(result, geometry, tile, tolerance, isPolygon, isOuter) {
|
|
106
|
+
const sqTolerance = tolerance * tolerance;
|
|
107
|
+
if (tolerance > 0 && geometry.size < (isPolygon ? sqTolerance : tolerance)) {
|
|
108
|
+
tile.numPoints += geometry.length / 3;
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const ring = [];
|
|
112
|
+
for (let i = 0; i < geometry.length; i += 3) {
|
|
113
|
+
if (tolerance === 0 || geometry[i + 2] > sqTolerance) {
|
|
114
|
+
tile.numSimplified++;
|
|
115
|
+
ring.push(geometry[i], geometry[i + 1]);
|
|
116
|
+
}
|
|
117
|
+
tile.numPoints++;
|
|
118
|
+
}
|
|
119
|
+
if (isPolygon)
|
|
120
|
+
rewind(ring, isOuter);
|
|
121
|
+
result.push(ring);
|
|
122
|
+
}
|
|
123
|
+
function rewind(ring, clockwise) {
|
|
124
|
+
let area = 0;
|
|
125
|
+
for (let i = 0, j = ring.length - 2; i < ring.length; j = i, i += 2) {
|
|
126
|
+
area += (ring[i] - ring[j]) * (ring[i + 1] + ring[j + 1]);
|
|
127
|
+
}
|
|
128
|
+
if (area > 0 === clockwise) {
|
|
129
|
+
for (let i = 0, len = ring.length; i < len / 2; i += 2) {
|
|
130
|
+
const x = ring[i];
|
|
131
|
+
const y = ring[i + 1];
|
|
132
|
+
ring[i] = ring[len - 2 - i];
|
|
133
|
+
ring[i + 1] = ring[len - 1 - i];
|
|
134
|
+
ring[len - 2 - i] = x;
|
|
135
|
+
ring[len - 1 - i] = y;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ProtoTile } from "./proto-tile.js";
|
|
2
|
+
import { GeoJSONTable } from '@loaders.gl/schema';
|
|
3
|
+
export declare function convertTileToGeoJSON(protoTile: ProtoTile, props: {
|
|
4
|
+
coordinates: 'EPSG:4326' | 'wgs84' | 'local';
|
|
5
|
+
tileIndex: {
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
z: number;
|
|
9
|
+
};
|
|
10
|
+
extent: number;
|
|
11
|
+
}): GeoJSONTable | null;
|
|
12
|
+
//# sourceMappingURL=tile-to-geojson.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tile-to-geojson.d.ts","sourceRoot":"","sources":["../../../src/lib/vector-tiler/tile-to-geojson.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,SAAS,EAAC,wBAAqB;AACvC,OAAO,EAAU,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAMzD,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE;IACL,WAAW,EAAE,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;IAC7C,SAAS,EAAE;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAC,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;CAChB,GACA,YAAY,GAAG,IAAI,CAqFrB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
// Forked from https://github.com/mapbox/geojson-vt under compatible ISC license
|
|
5
|
+
import { projectToLngLat } from "../utils/geometry-utils.js";
|
|
6
|
+
import { convertToLocalCoordinates } from "../utils/geometry-utils.js";
|
|
7
|
+
// eslint-disable-next-line max-statements, complexity
|
|
8
|
+
export function convertTileToGeoJSON(protoTile, props) {
|
|
9
|
+
const features = [];
|
|
10
|
+
for (const rawFeature of protoTile.protoFeatures) {
|
|
11
|
+
if (!rawFeature || !rawFeature.geometry) {
|
|
12
|
+
// eslint-disable-next-line no-continue
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
let type;
|
|
16
|
+
let coordinates;
|
|
17
|
+
// raw geometry
|
|
18
|
+
switch (rawFeature.simplifiedType) {
|
|
19
|
+
case 1:
|
|
20
|
+
if (rawFeature.geometry.length === 1) {
|
|
21
|
+
type = 'Point';
|
|
22
|
+
coordinates = rawFeature.geometry[0];
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
type = 'MultiPoint';
|
|
26
|
+
coordinates = rawFeature.geometry;
|
|
27
|
+
}
|
|
28
|
+
break;
|
|
29
|
+
case 2:
|
|
30
|
+
if (rawFeature.geometry.length === 1) {
|
|
31
|
+
type = 'LineString';
|
|
32
|
+
coordinates = rawFeature.geometry[0];
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
type = 'MultiLineString';
|
|
36
|
+
coordinates = rawFeature.geometry;
|
|
37
|
+
}
|
|
38
|
+
break;
|
|
39
|
+
case 3:
|
|
40
|
+
if (rawFeature.geometry.length > 1) {
|
|
41
|
+
type = 'MultiPolygon';
|
|
42
|
+
coordinates = [rawFeature.geometry];
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
type = 'Polygon';
|
|
46
|
+
coordinates = rawFeature.geometry;
|
|
47
|
+
}
|
|
48
|
+
break;
|
|
49
|
+
default:
|
|
50
|
+
throw new Error(`${rawFeature.simplifiedType}is not a valid simplified type`);
|
|
51
|
+
}
|
|
52
|
+
switch (props.coordinates) {
|
|
53
|
+
case 'EPSG:4326':
|
|
54
|
+
case 'wgs84':
|
|
55
|
+
projectToLngLat(coordinates, props.tileIndex, props.extent);
|
|
56
|
+
break;
|
|
57
|
+
default:
|
|
58
|
+
convertToLocalCoordinates(coordinates, props.extent);
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
const feature = {
|
|
62
|
+
type: 'Feature',
|
|
63
|
+
geometry: {
|
|
64
|
+
type,
|
|
65
|
+
coordinates
|
|
66
|
+
},
|
|
67
|
+
properties: rawFeature.tags || {},
|
|
68
|
+
id: rawFeature.id
|
|
69
|
+
};
|
|
70
|
+
features.push(feature);
|
|
71
|
+
}
|
|
72
|
+
if (features.length === 0) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const table = {
|
|
76
|
+
shape: 'geojson-table',
|
|
77
|
+
type: 'FeatureCollection',
|
|
78
|
+
features
|
|
79
|
+
};
|
|
80
|
+
return table;
|
|
81
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ProtoTile } from "./proto-tile.js";
|
|
2
|
+
/**
|
|
3
|
+
* Transforms the coordinates of each protoFeature in the given protoTile from
|
|
4
|
+
* mercator-projected space into (extent x extent) protoTile space.
|
|
5
|
+
*/
|
|
6
|
+
export declare function transformTile(protoTile: ProtoTile, extent: number): ProtoTile;
|
|
7
|
+
//# sourceMappingURL=transform-tile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transform-tile.d.ts","sourceRoot":"","sources":["../../../src/lib/vector-tiler/transform-tile.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAC,SAAS,EAAC,wBAAqB;AAE5C;;;GAGG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAiC7E"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
// Forked from https://github.com/mapbox/geojson-vt under compatible ISC license
|
|
5
|
+
/**
|
|
6
|
+
* Transforms the coordinates of each protoFeature in the given protoTile from
|
|
7
|
+
* mercator-projected space into (extent x extent) protoTile space.
|
|
8
|
+
*/
|
|
9
|
+
export function transformTile(protoTile, extent) {
|
|
10
|
+
if (protoTile.transformed) {
|
|
11
|
+
return protoTile;
|
|
12
|
+
}
|
|
13
|
+
const z2 = 1 << protoTile.z;
|
|
14
|
+
const tx = protoTile.x;
|
|
15
|
+
const ty = protoTile.y;
|
|
16
|
+
for (const protoFeature of protoTile.protoFeatures) {
|
|
17
|
+
const geom = protoFeature.geometry;
|
|
18
|
+
const simplifiedType = protoFeature.simplifiedType;
|
|
19
|
+
protoFeature.geometry = [];
|
|
20
|
+
if (simplifiedType === 1) {
|
|
21
|
+
for (let j = 0; j < geom.length; j += 2) {
|
|
22
|
+
protoFeature.geometry.push(transformPoint(geom[j], geom[j + 1], extent, z2, tx, ty));
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
for (let j = 0; j < geom.length; j++) {
|
|
27
|
+
const ring = [];
|
|
28
|
+
for (let k = 0; k < geom[j].length; k += 2) {
|
|
29
|
+
ring.push(transformPoint(geom[j][k], geom[j][k + 1], extent, z2, tx, ty));
|
|
30
|
+
}
|
|
31
|
+
protoFeature.geometry.push(ring);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
protoTile.transformed = true;
|
|
36
|
+
return protoTile;
|
|
37
|
+
}
|
|
38
|
+
// eslint-disable-next-line max-params
|
|
39
|
+
function transformPoint(x, y, extent, z2, tx, ty) {
|
|
40
|
+
return [Math.round(extent * (x * z2 - tx)), Math.round(extent * (y * z2 - ty))];
|
|
41
|
+
}
|
package/dist/mvt-loader.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { parseMVT } from "./lib/parse-mvt.js";
|
|
6
6
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
7
7
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
8
|
-
const VERSION = typeof "4.3.0-alpha.
|
|
8
|
+
const VERSION = typeof "4.3.0-alpha.2" !== 'undefined' ? "4.3.0-alpha.2" : 'latest';
|
|
9
9
|
/**
|
|
10
10
|
* Worker loader for the Mapbox Vector Tile format
|
|
11
11
|
*/
|
package/dist/mvt-source.d.ts
CHANGED
|
@@ -4,18 +4,35 @@ import type { GetTileParameters, GetTileDataParameters } from '@loaders.gl/loade
|
|
|
4
4
|
import { DataSource } from '@loaders.gl/loader-utils';
|
|
5
5
|
import { ImageLoaderOptions } from '@loaders.gl/images';
|
|
6
6
|
import { MVTLoaderOptions, TileJSON, TileJSONLoaderOptions } from '@loaders.gl/mvt';
|
|
7
|
+
/** Creates an MVTTileSource */
|
|
8
|
+
export declare const MVTSource: {
|
|
9
|
+
readonly name: "MVT";
|
|
10
|
+
readonly id: "mvt";
|
|
11
|
+
readonly module: "mvt";
|
|
12
|
+
readonly version: "0.0.0";
|
|
13
|
+
readonly extensions: ["mvt"];
|
|
14
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
15
|
+
readonly options: {
|
|
16
|
+
readonly mvt: {};
|
|
17
|
+
};
|
|
18
|
+
readonly type: "mvt";
|
|
19
|
+
readonly fromUrl: true;
|
|
20
|
+
readonly fromBlob: false;
|
|
21
|
+
readonly testURL: (url: string) => boolean;
|
|
22
|
+
readonly createDataSource: (url: string, props: MVTTileSourceProps) => MVTTileSource;
|
|
23
|
+
};
|
|
7
24
|
/** Properties for a Mapbox Vector Tile Source */
|
|
8
|
-
export type
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
25
|
+
export type MVTTileSourceProps = DataSourceProps & {
|
|
26
|
+
mvt?: {
|
|
27
|
+
/** if not supplied, loads tilejson.json, If null does not load metadata */
|
|
28
|
+
metadataUrl?: string | null;
|
|
29
|
+
/** Override extension (necessary if no metadata) */
|
|
30
|
+
extension?: string;
|
|
31
|
+
/** Additional attribution, adds to any attribution loaded from tileset metadata */
|
|
32
|
+
attributions?: string[];
|
|
33
|
+
/** Specify load options for all sub loaders */
|
|
34
|
+
loadOptions?: TileJSONLoaderOptions & MVTLoaderOptions & ImageLoaderOptions;
|
|
35
|
+
};
|
|
19
36
|
};
|
|
20
37
|
/**
|
|
21
38
|
* MVT data source for Mapbox Vector Tiles v1.
|
|
@@ -24,8 +41,8 @@ export type MVTSourceProps = DataSourceProps & {
|
|
|
24
41
|
* A PMTiles data source
|
|
25
42
|
* @note Can be either a raster or vector tile source depending on the contents of the PMTiles file.
|
|
26
43
|
*/
|
|
27
|
-
export declare class
|
|
28
|
-
readonly props:
|
|
44
|
+
export declare class MVTTileSource extends DataSource implements ImageTileSource, VectorTileSource {
|
|
45
|
+
readonly props: MVTTileSourceProps;
|
|
29
46
|
readonly url: string;
|
|
30
47
|
readonly metadataUrl: string | null;
|
|
31
48
|
data: string;
|
|
@@ -33,7 +50,7 @@ export declare class MVTSource extends DataSource implements ImageTileSource, Ve
|
|
|
33
50
|
metadata: Promise<TileJSON | null>;
|
|
34
51
|
extension: string;
|
|
35
52
|
mimeType: string | null;
|
|
36
|
-
constructor(props:
|
|
53
|
+
constructor(url: string, props: MVTTileSourceProps);
|
|
37
54
|
getMetadata(): Promise<TileJSON | null>;
|
|
38
55
|
getTileMIMEType(): string | null;
|
|
39
56
|
getTile(parameters: GetTileParameters): Promise<ArrayBuffer | null>;
|
package/dist/mvt-source.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mvt-source.d.ts","sourceRoot":"","sources":["../src/mvt-source.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mvt-source.d.ts","sourceRoot":"","sources":["../src/mvt-source.ts"],"names":[],"mappings":"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"}
|
package/dist/mvt-source.js
CHANGED
|
@@ -4,6 +4,27 @@
|
|
|
4
4
|
import { DataSource, resolvePath } from '@loaders.gl/loader-utils';
|
|
5
5
|
import { ImageLoader, getBinaryImageMetadata } from '@loaders.gl/images';
|
|
6
6
|
import { MVTLoader, TileJSONLoader } from '@loaders.gl/mvt';
|
|
7
|
+
/** Creates an MVTTileSource */
|
|
8
|
+
export const MVTSource = {
|
|
9
|
+
name: 'MVT',
|
|
10
|
+
id: 'mvt',
|
|
11
|
+
module: 'mvt',
|
|
12
|
+
version: '0.0.0',
|
|
13
|
+
extensions: ['mvt'],
|
|
14
|
+
mimeTypes: ['application/octet-stream'],
|
|
15
|
+
options: {
|
|
16
|
+
mvt: {
|
|
17
|
+
// TODO - add options here
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
type: 'mvt',
|
|
21
|
+
fromUrl: true,
|
|
22
|
+
fromBlob: false,
|
|
23
|
+
testURL: (url) => true,
|
|
24
|
+
createDataSource(url, props) {
|
|
25
|
+
return new MVTTileSource(url, props);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
7
28
|
/**
|
|
8
29
|
* MVT data source for Mapbox Vector Tiles v1.
|
|
9
30
|
*/
|
|
@@ -11,7 +32,7 @@ import { MVTLoader, TileJSONLoader } from '@loaders.gl/mvt';
|
|
|
11
32
|
* A PMTiles data source
|
|
12
33
|
* @note Can be either a raster or vector tile source depending on the contents of the PMTiles file.
|
|
13
34
|
*/
|
|
14
|
-
export class
|
|
35
|
+
export class MVTTileSource extends DataSource {
|
|
15
36
|
props;
|
|
16
37
|
url;
|
|
17
38
|
metadataUrl = null;
|
|
@@ -20,13 +41,12 @@ export class MVTSource extends DataSource {
|
|
|
20
41
|
metadata;
|
|
21
42
|
extension;
|
|
22
43
|
mimeType = null;
|
|
23
|
-
constructor(props) {
|
|
44
|
+
constructor(url, props) {
|
|
24
45
|
super(props);
|
|
25
46
|
this.props = props;
|
|
26
|
-
this.url = resolvePath(
|
|
27
|
-
this.metadataUrl =
|
|
28
|
-
|
|
29
|
-
this.extension = props.extension || '.png';
|
|
47
|
+
this.url = resolvePath(url);
|
|
48
|
+
this.metadataUrl = props.mvt?.metadataUrl || `${this.url}/tilejson.json`;
|
|
49
|
+
this.extension = props.mvt?.extension || '.png';
|
|
30
50
|
this.data = this.url;
|
|
31
51
|
this.getTileData = this.getTileData.bind(this);
|
|
32
52
|
this.metadata = this.getMetadata();
|
package/dist/mvt-worker.js
CHANGED
|
@@ -1649,7 +1649,7 @@
|
|
|
1649
1649
|
var navigator_ = globalThis.navigator || {};
|
|
1650
1650
|
|
|
1651
1651
|
// ../../node_modules/@probe.gl/log/node_modules/@probe.gl/env/dist/utils/globals.js
|
|
1652
|
-
var VERSION = true ? "4.3.0-alpha.
|
|
1652
|
+
var VERSION = true ? "4.3.0-alpha.2" : "untranspiled source";
|
|
1653
1653
|
var isBrowser2 = isBrowser();
|
|
1654
1654
|
|
|
1655
1655
|
// ../../node_modules/@probe.gl/log/dist/utils/local-storage.js
|
|
@@ -2147,7 +2147,7 @@
|
|
|
2147
2147
|
});
|
|
2148
2148
|
|
|
2149
2149
|
// ../loader-utils/src/lib/log-utils/log.ts
|
|
2150
|
-
var VERSION2 = true ? "4.3.0-alpha.
|
|
2150
|
+
var VERSION2 = true ? "4.3.0-alpha.2" : "latest";
|
|
2151
2151
|
var version = VERSION2[0] >= "0" && VERSION2[0] <= "9" ? `v${VERSION2}` : "";
|
|
2152
2152
|
function createLog() {
|
|
2153
2153
|
const log2 = new Log({ id: "loaders.gl" });
|
|
@@ -2384,7 +2384,7 @@
|
|
|
2384
2384
|
p[1] /= extent;
|
|
2385
2385
|
}
|
|
2386
2386
|
function convertToLocalCoordinatesFlat(data, extent) {
|
|
2387
|
-
for (let i = 0
|
|
2387
|
+
for (let i = 0; i < data.length; ++i) {
|
|
2388
2388
|
data[i] /= extent;
|
|
2389
2389
|
}
|
|
2390
2390
|
}
|
|
@@ -3019,7 +3019,7 @@
|
|
|
3019
3019
|
}
|
|
3020
3020
|
|
|
3021
3021
|
// src/mvt-loader.ts
|
|
3022
|
-
var VERSION3 = true ? "4.3.0-alpha.
|
|
3022
|
+
var VERSION3 = true ? "4.3.0-alpha.2" : "latest";
|
|
3023
3023
|
var MVTWorkerLoader = {
|
|
3024
3024
|
dataType: null,
|
|
3025
3025
|
batchType: null,
|
|
@@ -1,31 +1,60 @@
|
|
|
1
|
-
import type { VectorTileSourceProps, GetTileDataParameters, GetTileParameters } from '@loaders.gl/loader-utils';
|
|
2
|
-
import { VectorTileSource } from '@loaders.gl/loader-utils';
|
|
1
|
+
import type { VectorTileSourceProps, GetTileDataParameters, GetTileParameters, LoaderWithParser } from '@loaders.gl/loader-utils';
|
|
2
|
+
import { VectorTileSource, TileSourceMetadata } from '@loaders.gl/loader-utils';
|
|
3
3
|
import { Schema, GeoJSONTable, Feature, BinaryFeatureCollection } from '@loaders.gl/schema';
|
|
4
4
|
import { Stats } from '@probe.gl/stats';
|
|
5
|
-
import type {
|
|
5
|
+
import type { ProtoFeature } from "./lib/vector-tiler/features/proto-feature.js";
|
|
6
|
+
import type { ProtoTile } from "./lib/vector-tiler/proto-tile.js";
|
|
6
7
|
/** Options to configure tiling */
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
8
|
+
export declare const TableTileSource: {
|
|
9
|
+
readonly name: "TableTiler";
|
|
10
|
+
readonly id: "table-tiler";
|
|
11
|
+
readonly version: "0.0.0";
|
|
12
|
+
readonly extensions: ["mvt"];
|
|
13
|
+
readonly mimeTypes: ["application/octet-stream"];
|
|
14
|
+
readonly options: {
|
|
15
|
+
readonly table: {
|
|
16
|
+
readonly coordinates: "local";
|
|
17
|
+
readonly promoteId: never;
|
|
18
|
+
readonly maxZoom: 14;
|
|
19
|
+
readonly indexMaxZoom: 5;
|
|
20
|
+
readonly maxPointsPerTile: 10000;
|
|
21
|
+
readonly tolerance: 3;
|
|
22
|
+
readonly extent: 4096;
|
|
23
|
+
readonly buffer: 64;
|
|
24
|
+
readonly generateId: undefined;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
readonly type: "table";
|
|
28
|
+
readonly testURL: (url: string) => boolean;
|
|
29
|
+
readonly createDataSource: (url: string | Blob | GeoJSONTable | Promise<GeoJSONTable>, options: DynamicVectorTileSourceProps) => DynamicVectorTileSource;
|
|
30
|
+
};
|
|
31
|
+
/** Options to configure tiling */
|
|
32
|
+
export type DynamicVectorTileSourceProps = VectorTileSourceProps & {
|
|
33
|
+
table: {
|
|
34
|
+
coordinates: 'local' | 'wgs84' | 'EPSG:4326';
|
|
35
|
+
/** max zoom to preserve detail on */
|
|
36
|
+
maxZoom?: number;
|
|
37
|
+
/** max zoom in the tile index */
|
|
38
|
+
indexMaxZoom?: number;
|
|
39
|
+
/** max number of points per tile in the tile index */
|
|
40
|
+
maxPointsPerTile?: number;
|
|
41
|
+
/** simplification tolerance (higher means simpler) */
|
|
42
|
+
tolerance?: number;
|
|
43
|
+
/** tile extent */
|
|
44
|
+
extent?: number;
|
|
45
|
+
/** tile buffer on each side */
|
|
46
|
+
buffer?: number;
|
|
47
|
+
/** name of a feature property to be promoted to feature.id */
|
|
48
|
+
promoteId?: string;
|
|
49
|
+
/** whether to generate feature ids. Cannot be used with promoteId */
|
|
50
|
+
generateId?: boolean;
|
|
51
|
+
/** logging level (0, 1 or 2) */
|
|
52
|
+
debug?: number;
|
|
53
|
+
/** whether to calculate line metrics */
|
|
54
|
+
lineMetrics?: boolean;
|
|
55
|
+
/** table loders */
|
|
56
|
+
loaders?: LoaderWithParser[];
|
|
57
|
+
};
|
|
29
58
|
};
|
|
30
59
|
/**
|
|
31
60
|
* Dynamically vector tiles a table (the table needs a geometry column)
|
|
@@ -42,20 +71,19 @@ export type TableTileSourceProps = VectorTileSourceProps & {
|
|
|
42
71
|
* @todo - generate binary output tables
|
|
43
72
|
* @todo - how does TileSourceLayer specify coordinates / decided which layer to render with
|
|
44
73
|
*/
|
|
45
|
-
export declare class
|
|
46
|
-
|
|
47
|
-
/** Global stats for all TableTileSources */
|
|
74
|
+
export declare class DynamicVectorTileSource implements VectorTileSource<DynamicVectorTileSourceProps, TileSourceMetadata> {
|
|
75
|
+
/** Global stats for all DynamicVectorTileSources */
|
|
48
76
|
static stats: Stats;
|
|
49
|
-
/** Stats for this
|
|
77
|
+
/** Stats for this DynamicVectorTileSource */
|
|
50
78
|
stats: Stats;
|
|
51
79
|
/** MIME type of the tiles emitted by this tile source */
|
|
52
80
|
readonly mimeType = "application/vnd.mapbox-vector-tile";
|
|
53
81
|
readonly localCoordinates = true;
|
|
54
82
|
/** The props that this tile source was created with */
|
|
55
|
-
props: Required<
|
|
83
|
+
props: Required<DynamicVectorTileSourceProps['table']>;
|
|
56
84
|
schema: Schema | null;
|
|
57
85
|
/** Map of generated tiles, indexed by stringified tile coordinates */
|
|
58
|
-
tiles: Record<string,
|
|
86
|
+
tiles: Record<string, ProtoTile>;
|
|
59
87
|
/** Array of tile coordinates */
|
|
60
88
|
tileCoords: {
|
|
61
89
|
x: number;
|
|
@@ -66,9 +94,11 @@ export declare class TableTileSource implements VectorTileSource<any> {
|
|
|
66
94
|
ready: Promise<void>;
|
|
67
95
|
/** Metadata for the tile source (generated TileJSON/tilestats */
|
|
68
96
|
metadata: Promise<unknown>;
|
|
69
|
-
constructor(table: GeoJSONTable | Promise<GeoJSONTable>, props?:
|
|
97
|
+
constructor(table: GeoJSONTable | Promise<GeoJSONTable>, props?: DynamicVectorTileSourceProps);
|
|
70
98
|
initializeTilesAsync(tablePromise: GeoJSONTable | Promise<GeoJSONTable>): Promise<void>;
|
|
71
|
-
getMetadata(): Promise<
|
|
99
|
+
getMetadata(): Promise<TileSourceMetadata & {
|
|
100
|
+
schema: Schema | null;
|
|
101
|
+
}>;
|
|
72
102
|
getSchema(): Promise<Schema>;
|
|
73
103
|
/**
|
|
74
104
|
* Get a tile at the specified index
|
|
@@ -100,11 +130,11 @@ export declare class TableTileSource implements VectorTileSource<any> {
|
|
|
100
130
|
* Return geojsonvt-style "half formed" vector tile
|
|
101
131
|
* @note Application must await `source.ready` before calling sync methods.
|
|
102
132
|
*/
|
|
103
|
-
|
|
133
|
+
getProtoTile(tileIndex: {
|
|
104
134
|
z: number;
|
|
105
135
|
x: number;
|
|
106
136
|
y: number;
|
|
107
|
-
}):
|
|
137
|
+
}): ProtoTile | null;
|
|
108
138
|
/**
|
|
109
139
|
* splits features from a parent tile to sub-tiles.
|
|
110
140
|
* @param z, x, and y are the coordinates of the parent tile
|
|
@@ -113,6 +143,6 @@ export declare class TableTileSource implements VectorTileSource<any> {
|
|
|
113
143
|
* If no target tile is specified, splitting stops when we reach the maximum
|
|
114
144
|
* zoom or the number of points is low as specified in the props.
|
|
115
145
|
*/
|
|
116
|
-
splitTile(features:
|
|
146
|
+
splitTile(features: ProtoFeature[], z: number, x: number, y: number, cz?: number, cx?: number, cy?: number): void;
|
|
117
147
|
}
|
|
118
148
|
//# sourceMappingURL=table-tile-source.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-tile-source.d.ts","sourceRoot":"","sources":["../src/table-tile-source.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table-tile-source.d.ts","sourceRoot":"","sources":["../src/table-tile-source.ts"],"names":[],"mappings":"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"}
|