@loaders.gl/mvt 3.4.14 → 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrap.js","names":["_clip","require","_feature","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","Reflect","construct","arguments","apply","_possibleConstructorReturn2","sham","Proxy","Boolean","prototype","valueOf","call","e","_createForOfIteratorHelper","o","allowArrayLike","it","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","Object","toString","slice","name","from","test","arr","len","arr2","wrap","features","options","buffer","extent","merged","left","clip","right","shiftFeatureCoords","concat","offset","newFeatures","feature","type","newGeometry","shiftCoords","geometry","_iterator","_step","line","push","_iterator2","_step2","polygon","newPolygon","_iterator3","_step3","createFeature","id","tags","Points","_Array","_inherits2","_super","_this","_classCallCheck2","_len","args","_key","_defineProperty2","_assertThisInitialized2","_createClass2","_wrapNativeSuper2","points","newPoints","size","start","undefined","end"],"sources":["../../../../src/lib/geojson-tiler/wrap.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Forked from https://github.com/mapbox/geojson-vt under compatible ISC license\n\nimport type {GeoJSONTileFeature} from './tile';\nimport {clip} from './clip';\nimport {createFeature} from './feature';\n\n/**\n * Options for wrap()\n */\nexport type WrapOptions = {\n buffer: number /** number of pixels of buffer for the tile */;\n extent: number /** extent of each tile */;\n lineMetrics: boolean;\n};\n\n/**\n * Wrap across antemeridian, by clipping into two tiles, shifting the overflowing x coordinates\n * @param features list of features to be wrapped\n * @param options buffer and extent\n * @returns\n */\nexport function wrap(features: GeoJSONTileFeature[], options: WrapOptions) {\n const buffer = options.buffer / options.extent;\n let merged: GeoJSONTileFeature[] = features;\n const left = clip(features, 1, -1 - buffer, buffer, 0, -1, 2, options); // left world copy\n const right = clip(features, 1, 1 - buffer, 2 + buffer, 0, -1, 2, options); // right world copy\n\n if (left || right) {\n merged = clip(features, 1, -buffer, 1 + buffer, 0, -1, 2, options) || []; // center world copy\n\n if (left) {\n merged = shiftFeatureCoords(left, 1).concat(merged); // merge left into center\n }\n if (right) {\n merged = merged.concat(shiftFeatureCoords(right, -1)); // merge right into center\n }\n }\n\n return merged;\n}\n\n/**\n * Shift the x coordinates of a list of features\n * @param features list of features to shift x coordinates for\n * @param offset\n * @returns\n */\nfunction shiftFeatureCoords(features: GeoJSONTileFeature[], offset: number): GeoJSONTileFeature[] {\n const newFeatures: GeoJSONTileFeature[] = [];\n\n for (let i = 0; i < features.length; i++) {\n const feature = features[i];\n const type = feature.type;\n\n let newGeometry;\n\n if (type === 'Point' || type === 'MultiPoint' || type === 'LineString') {\n newGeometry = shiftCoords(feature.geometry, offset);\n } else if (type === 'MultiLineString' || type === 'Polygon') {\n newGeometry = [];\n for (const line of feature.geometry) {\n newGeometry.push(shiftCoords(line, offset));\n }\n } else if (type === 'MultiPolygon') {\n newGeometry = [];\n for (const polygon of feature.geometry) {\n const newPolygon: Points = [];\n for (const line of polygon) {\n // @ts-expect-error TODO\n newPolygon.push(shiftCoords(line, offset));\n }\n newGeometry.push(newPolygon);\n }\n }\n\n newFeatures.push(createFeature(feature.id, type, newGeometry, feature.tags));\n }\n\n return newFeatures;\n}\n\nclass Points extends Array<number> {\n size?: number;\n start?: number;\n end?: number;\n}\n\n/**\n * Shift the x coordinate of every point\n * @param points\n * @param offset\n * @returns\n */\nfunction shiftCoords(points: Points, offset: number): Points {\n const newPoints: Points = [];\n newPoints.size = points.size;\n\n if (points.start !== undefined) {\n newPoints.start = points.start;\n newPoints.end = points.end;\n }\n\n for (let i = 0; i < points.length; i += 3) {\n newPoints.push(points[i] + offset, points[i + 1], points[i + 2]);\n }\n return newPoints;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"wrap.js","names":["_clip","require","_feature","wrap","features","options","buffer","extent","merged","left","clip","right","shiftFeatureCoords","concat","offset","newFeatures","i","length","feature","type","newGeometry","shiftCoords","geometry","line","push","polygon","newPolygon","createFeature","id","tags","Points","Array","constructor","arguments","_defineProperty2","default","points","newPoints","size","start","undefined","end"],"sources":["../../../../src/lib/geojson-tiler/wrap.ts"],"sourcesContent":["// loaders.gl, MIT license\n// Forked from https://github.com/mapbox/geojson-vt under compatible ISC license\n\nimport type {GeoJSONTileFeature} from './tile';\nimport {clip} from './clip';\nimport {createFeature} from './feature';\n\n/**\n * Options for wrap()\n */\nexport type WrapOptions = {\n buffer: number /** number of pixels of buffer for the tile */;\n extent: number /** extent of each tile */;\n lineMetrics: boolean;\n};\n\n/**\n * Wrap across antemeridian, by clipping into two tiles, shifting the overflowing x coordinates\n * @param features list of features to be wrapped\n * @param options buffer and extent\n * @returns\n */\nexport function wrap(features: GeoJSONTileFeature[], options: WrapOptions) {\n const buffer = options.buffer / options.extent;\n let merged: GeoJSONTileFeature[] = features;\n const left = clip(features, 1, -1 - buffer, buffer, 0, -1, 2, options); // left world copy\n const right = clip(features, 1, 1 - buffer, 2 + buffer, 0, -1, 2, options); // right world copy\n\n if (left || right) {\n merged = clip(features, 1, -buffer, 1 + buffer, 0, -1, 2, options) || []; // center world copy\n\n if (left) {\n merged = shiftFeatureCoords(left, 1).concat(merged); // merge left into center\n }\n if (right) {\n merged = merged.concat(shiftFeatureCoords(right, -1)); // merge right into center\n }\n }\n\n return merged;\n}\n\n/**\n * Shift the x coordinates of a list of features\n * @param features list of features to shift x coordinates for\n * @param offset\n * @returns\n */\nfunction shiftFeatureCoords(features: GeoJSONTileFeature[], offset: number): GeoJSONTileFeature[] {\n const newFeatures: GeoJSONTileFeature[] = [];\n\n for (let i = 0; i < features.length; i++) {\n const feature = features[i];\n const type = feature.type;\n\n let newGeometry;\n\n if (type === 'Point' || type === 'MultiPoint' || type === 'LineString') {\n newGeometry = shiftCoords(feature.geometry, offset);\n } else if (type === 'MultiLineString' || type === 'Polygon') {\n newGeometry = [];\n for (const line of feature.geometry) {\n newGeometry.push(shiftCoords(line, offset));\n }\n } else if (type === 'MultiPolygon') {\n newGeometry = [];\n for (const polygon of feature.geometry) {\n const newPolygon: Points = [];\n for (const line of polygon) {\n // @ts-expect-error TODO\n newPolygon.push(shiftCoords(line, offset));\n }\n newGeometry.push(newPolygon);\n }\n }\n\n newFeatures.push(createFeature(feature.id, type, newGeometry, feature.tags));\n }\n\n return newFeatures;\n}\n\nclass Points extends Array<number> {\n size?: number;\n start?: number;\n end?: number;\n}\n\n/**\n * Shift the x coordinate of every point\n * @param points\n * @param offset\n * @returns\n */\nfunction shiftCoords(points: Points, offset: number): Points {\n const newPoints: Points = [];\n newPoints.size = points.size;\n\n if (points.start !== undefined) {\n newPoints.start = points.start;\n newPoints.end = points.end;\n }\n\n for (let i = 0; i < points.length; i += 3) {\n newPoints.push(points[i] + offset, points[i + 1], points[i + 2]);\n }\n return newPoints;\n}\n"],"mappings":"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"}
|
|
@@ -5,13 +5,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
9
|
var _mapboxUtilFunctions = require("../../helpers/mapbox-util-functions");
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
class VectorTileFeature {
|
|
11
|
+
static get types() {
|
|
12
|
+
return ['Unknown', 'Point', 'LineString', 'Polygon'];
|
|
13
|
+
}
|
|
14
|
+
constructor(pbf, end, extent, keys, values) {
|
|
15
15
|
(0, _defineProperty2.default)(this, "properties", void 0);
|
|
16
16
|
(0, _defineProperty2.default)(this, "extent", void 0);
|
|
17
17
|
(0, _defineProperty2.default)(this, "type", void 0);
|
|
@@ -30,155 +30,142 @@ var VectorTileFeature = function () {
|
|
|
30
30
|
this._values = values;
|
|
31
31
|
pbf.readFields(_mapboxUtilFunctions.readFeature, this, end);
|
|
32
32
|
}
|
|
33
|
-
(
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
cmd = cmdLen & 0x7;
|
|
49
|
-
length = cmdLen >> 3;
|
|
50
|
-
}
|
|
51
|
-
length--;
|
|
52
|
-
if (cmd === 1 || cmd === 2) {
|
|
53
|
-
x += pbf.readSVarint();
|
|
54
|
-
y += pbf.readSVarint();
|
|
55
|
-
if (cmd === 1) {
|
|
56
|
-
if (line) lines.push(line);
|
|
57
|
-
line = [];
|
|
58
|
-
}
|
|
59
|
-
if (line) line.push([x, y]);
|
|
60
|
-
} else if (cmd === 7) {
|
|
61
|
-
if (line) {
|
|
62
|
-
line.push(line[0].slice());
|
|
63
|
-
}
|
|
64
|
-
} else {
|
|
65
|
-
throw new Error("unknown command ".concat(cmd));
|
|
66
|
-
}
|
|
33
|
+
loadGeometry() {
|
|
34
|
+
const pbf = this._pbf;
|
|
35
|
+
pbf.pos = this._geometry;
|
|
36
|
+
const end = pbf.readVarint() + pbf.pos;
|
|
37
|
+
let cmd = 1;
|
|
38
|
+
let length = 0;
|
|
39
|
+
let x = 0;
|
|
40
|
+
let y = 0;
|
|
41
|
+
const lines = [];
|
|
42
|
+
let line;
|
|
43
|
+
while (pbf.pos < end) {
|
|
44
|
+
if (length <= 0) {
|
|
45
|
+
const cmdLen = pbf.readVarint();
|
|
46
|
+
cmd = cmdLen & 0x7;
|
|
47
|
+
length = cmdLen >> 3;
|
|
67
48
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
pbf.pos = this._geometry;
|
|
76
|
-
var end = pbf.readVarint() + pbf.pos;
|
|
77
|
-
var cmd = 1;
|
|
78
|
-
var length = 0;
|
|
79
|
-
var x = 0;
|
|
80
|
-
var y = 0;
|
|
81
|
-
var x1 = Infinity;
|
|
82
|
-
var x2 = -Infinity;
|
|
83
|
-
var y1 = Infinity;
|
|
84
|
-
var y2 = -Infinity;
|
|
85
|
-
while (pbf.pos < end) {
|
|
86
|
-
if (length <= 0) {
|
|
87
|
-
var cmdLen = pbf.readVarint();
|
|
88
|
-
cmd = cmdLen & 0x7;
|
|
89
|
-
length = cmdLen >> 3;
|
|
49
|
+
length--;
|
|
50
|
+
if (cmd === 1 || cmd === 2) {
|
|
51
|
+
x += pbf.readSVarint();
|
|
52
|
+
y += pbf.readSVarint();
|
|
53
|
+
if (cmd === 1) {
|
|
54
|
+
if (line) lines.push(line);
|
|
55
|
+
line = [];
|
|
90
56
|
}
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
if (x < x1) x1 = x;
|
|
96
|
-
if (x > x2) x2 = x;
|
|
97
|
-
if (y < y1) y1 = y;
|
|
98
|
-
if (y > y2) y2 = y;
|
|
99
|
-
} else if (cmd !== 7) {
|
|
100
|
-
throw new Error("unknown command ".concat(cmd));
|
|
57
|
+
if (line) line.push([x, y]);
|
|
58
|
+
} else if (cmd === 7) {
|
|
59
|
+
if (line) {
|
|
60
|
+
line.push(line[0].slice());
|
|
101
61
|
}
|
|
62
|
+
} else {
|
|
63
|
+
throw new Error("unknown command ".concat(cmd));
|
|
102
64
|
}
|
|
103
|
-
return [x1, y1, x2, y2];
|
|
104
65
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
break;
|
|
126
|
-
case 3:
|
|
127
|
-
coords = (0, _mapboxUtilFunctions.classifyRings)(coords);
|
|
128
|
-
for (i = 0; i < coords.length; i++) {
|
|
129
|
-
for (j = 0; j < coords[i].length; j++) {
|
|
130
|
-
transform(coords[i][j], this);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
if (coords.length === 1) {
|
|
136
|
-
coords = coords[0];
|
|
137
|
-
} else {
|
|
138
|
-
type = "Multi".concat(type);
|
|
66
|
+
if (line) lines.push(line);
|
|
67
|
+
return lines;
|
|
68
|
+
}
|
|
69
|
+
bbox() {
|
|
70
|
+
const pbf = this._pbf;
|
|
71
|
+
pbf.pos = this._geometry;
|
|
72
|
+
const end = pbf.readVarint() + pbf.pos;
|
|
73
|
+
let cmd = 1;
|
|
74
|
+
let length = 0;
|
|
75
|
+
let x = 0;
|
|
76
|
+
let y = 0;
|
|
77
|
+
let x1 = Infinity;
|
|
78
|
+
let x2 = -Infinity;
|
|
79
|
+
let y1 = Infinity;
|
|
80
|
+
let y2 = -Infinity;
|
|
81
|
+
while (pbf.pos < end) {
|
|
82
|
+
if (length <= 0) {
|
|
83
|
+
const cmdLen = pbf.readVarint();
|
|
84
|
+
cmd = cmdLen & 0x7;
|
|
85
|
+
length = cmdLen >> 3;
|
|
139
86
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
if (
|
|
149
|
-
|
|
87
|
+
length--;
|
|
88
|
+
if (cmd === 1 || cmd === 2) {
|
|
89
|
+
x += pbf.readSVarint();
|
|
90
|
+
y += pbf.readSVarint();
|
|
91
|
+
if (x < x1) x1 = x;
|
|
92
|
+
if (x > x2) x2 = x;
|
|
93
|
+
if (y < y1) y1 = y;
|
|
94
|
+
if (y > y2) y2 = y;
|
|
95
|
+
} else if (cmd !== 7) {
|
|
96
|
+
throw new Error("unknown command ".concat(cmd));
|
|
150
97
|
}
|
|
151
|
-
return result;
|
|
152
98
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
function project(line) {
|
|
166
|
-
for (var j = 0; j < line.length; j++) {
|
|
167
|
-
var p = line[j];
|
|
168
|
-
p[0] = (p[0] + x0) * 360 / size - 180;
|
|
169
|
-
var y2 = 180 - (p[1] + y0) * 360 / size;
|
|
170
|
-
p[1] = 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90;
|
|
99
|
+
return [x1, y1, x2, y2];
|
|
100
|
+
}
|
|
101
|
+
_toGeoJSON(transform) {
|
|
102
|
+
let coords = this.loadGeometry();
|
|
103
|
+
let type = VectorTileFeature.types[this.type];
|
|
104
|
+
let i;
|
|
105
|
+
let j;
|
|
106
|
+
switch (this.type) {
|
|
107
|
+
case 1:
|
|
108
|
+
const points = [];
|
|
109
|
+
for (i = 0; i < coords.length; i++) {
|
|
110
|
+
points[i] = coords[i][0];
|
|
171
111
|
}
|
|
172
|
-
|
|
173
|
-
|
|
112
|
+
coords = points;
|
|
113
|
+
transform(coords, this);
|
|
114
|
+
break;
|
|
115
|
+
case 2:
|
|
116
|
+
for (i = 0; i < coords.length; i++) {
|
|
117
|
+
transform(coords[i], this);
|
|
118
|
+
}
|
|
119
|
+
break;
|
|
120
|
+
case 3:
|
|
121
|
+
coords = (0, _mapboxUtilFunctions.classifyRings)(coords);
|
|
122
|
+
for (i = 0; i < coords.length; i++) {
|
|
123
|
+
for (j = 0; j < coords[i].length; j++) {
|
|
124
|
+
transform(coords[i][j], this);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
break;
|
|
174
128
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
129
|
+
if (coords.length === 1) {
|
|
130
|
+
coords = coords[0];
|
|
131
|
+
} else {
|
|
132
|
+
type = "Multi".concat(type);
|
|
179
133
|
}
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
134
|
+
const result = {
|
|
135
|
+
type: 'Feature',
|
|
136
|
+
geometry: {
|
|
137
|
+
type,
|
|
138
|
+
coordinates: coords
|
|
139
|
+
},
|
|
140
|
+
properties: this.properties
|
|
141
|
+
};
|
|
142
|
+
if (this.id !== null) {
|
|
143
|
+
result.id = this.id;
|
|
144
|
+
}
|
|
145
|
+
return result;
|
|
146
|
+
}
|
|
147
|
+
toGeoJSON(options) {
|
|
148
|
+
if (typeof options === 'function') {
|
|
149
|
+
return this._toGeoJSON(options);
|
|
150
|
+
}
|
|
151
|
+
const {
|
|
152
|
+
x,
|
|
153
|
+
y,
|
|
154
|
+
z
|
|
155
|
+
} = options;
|
|
156
|
+
const size = this.extent * Math.pow(2, z);
|
|
157
|
+
const x0 = this.extent * x;
|
|
158
|
+
const y0 = this.extent * y;
|
|
159
|
+
function project(line) {
|
|
160
|
+
for (let j = 0; j < line.length; j++) {
|
|
161
|
+
const p = line[j];
|
|
162
|
+
p[0] = (p[0] + x0) * 360 / size - 180;
|
|
163
|
+
const y2 = 180 - (p[1] + y0) * 360 / size;
|
|
164
|
+
p[1] = 360 / Math.PI * Math.atan(Math.exp(y2 * Math.PI / 180)) - 90;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return this._toGeoJSON(project);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
183
170
|
exports.default = VectorTileFeature;
|
|
184
171
|
//# sourceMappingURL=vector-tile-feature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-tile-feature.js","names":["_mapboxUtilFunctions","require","VectorTileFeature","pbf","end","extent","keys","values","_classCallCheck2","default","_defineProperty2","properties","type","id","_pbf","_geometry","_keys","_values","readFields","readFeature","_createClass2","key","value","loadGeometry","pos","readVarint","cmd","length","x","y","lines","line","cmdLen","readSVarint","push","slice","Error","concat","bbox","x1","Infinity","x2","y1","y2","_toGeoJSON","transform","coords","types","i","j","points","classifyRings","result","geometry","coordinates","toGeoJSON","options","z","size","Math","pow","x0","y0","project","p","PI","atan","exp","get","exports"],"sources":["../../../../src/lib/mapbox-vector-tile/vector-tile-feature.ts"],"sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\nimport Protobuf from 'pbf';\nimport {MVTMapboxCoordinates, MVTMapboxGeometry} from '../types';\nimport {readFeature, classifyRings} from '../../helpers/mapbox-util-functions';\n\nexport default class VectorTileFeature {\n properties: {[x: string]: string | number | boolean | null};\n extent: any;\n type: number;\n id: number | null;\n _pbf: Protobuf;\n _geometry: number;\n _keys: string[];\n _values: (string | number | boolean | null)[];\n static get types() {\n return ['Unknown', 'Point', 'LineString', 'Polygon'];\n }\n\n constructor(\n pbf: Protobuf,\n end: number,\n extent: any,\n keys: string[],\n values: (string | number | boolean | null)[]\n ) {\n // Public\n this.properties = {};\n this.extent = extent;\n this.type = 0;\n this.id = null;\n\n // Private\n this._pbf = pbf;\n this._geometry = -1;\n this._keys = keys;\n this._values = values;\n\n pbf.readFields(readFeature, this, end);\n }\n\n // eslint-disable-next-line complexity, max-statements\n loadGeometry(): MVTMapboxGeometry {\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n const end = pbf.readVarint() + pbf.pos;\n let cmd = 1;\n let length = 0;\n let x = 0;\n let y = 0;\n const lines: number[][][] = [];\n let line: number[][] | undefined;\n\n while (pbf.pos < end) {\n if (length <= 0) {\n const cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n\n if (cmd === 1) {\n // moveTo\n if (line) lines.push(line);\n line = [];\n }\n if (line) line.push([x, y]);\n } else if (cmd === 7) {\n // Workaround for https://github.com/mapbox/mapnik-vector-tile/issues/90\n if (line) {\n line.push(line[0].slice()); // closePolygon\n }\n } else {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n if (line) lines.push(line);\n\n return lines;\n }\n\n // eslint-disable-next-line max-statements\n bbox() {\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n const end = pbf.readVarint() + pbf.pos;\n let cmd = 1;\n let length = 0;\n let x = 0;\n let y = 0;\n let x1 = Infinity;\n let x2 = -Infinity;\n let y1 = Infinity;\n let y2 = -Infinity;\n\n while (pbf.pos < end) {\n if (length <= 0) {\n const cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n if (x < x1) x1 = x;\n if (x > x2) x2 = x;\n if (y < y1) y1 = y;\n if (y > y2) y2 = y;\n } else if (cmd !== 7) {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n return [x1, y1, x2, y2];\n }\n\n _toGeoJSON(transform) {\n let coords = this.loadGeometry();\n let type = VectorTileFeature.types[this.type];\n let i: number;\n let j: number;\n\n // eslint-disable-next-line default-case\n switch (this.type) {\n case 1:\n const points: number[] = [];\n for (i = 0; i < coords.length; i++) {\n points[i] = coords[i][0];\n }\n coords = points;\n transform(coords, this);\n break;\n\n case 2:\n for (i = 0; i < coords.length; i++) {\n transform(coords[i], this);\n }\n break;\n\n case 3:\n coords = classifyRings(coords);\n for (i = 0; i < coords.length; i++) {\n for (j = 0; j < coords[i].length; j++) {\n transform(coords[i][j], this);\n }\n }\n break;\n }\n\n if (coords.length === 1) {\n coords = coords[0];\n } else {\n type = `Multi${type}`;\n }\n\n const result: MVTMapboxCoordinates = {\n type: 'Feature',\n geometry: {\n type,\n coordinates: coords\n },\n properties: this.properties\n };\n\n if (this.id !== null) {\n result.id = this.id;\n }\n\n return result;\n }\n\n toGeoJSON(\n options: {x: number; y: number; z: number} | ((data: number[], feature: {extent: any}) => void)\n ): MVTMapboxCoordinates {\n if (typeof options === 'function') {\n return this._toGeoJSON(options);\n }\n const {x, y, z} = options;\n const size = this.extent * Math.pow(2, z);\n const x0 = this.extent * x;\n const y0 = this.extent * y;\n\n function project(line: number[]) {\n for (let j = 0; j < line.length; j++) {\n const p = line[j];\n p[0] = ((p[0] + x0) * 360) / size - 180;\n const y2 = 180 - ((p[1] + y0) * 360) / size;\n p[1] = (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;\n }\n }\n return this._toGeoJSON(project);\n }\n}\n"],"mappings":";;;;;;;;;;AAGA,IAAAA,oBAAA,GAAAC,OAAA;AAA+E,IAE1DC,iBAAiB;EAapC,SAAAA,kBACEC,GAAa,EACbC,GAAW,EACXC,MAAW,EACXC,IAAc,EACdC,MAA4C,EAC5C;IAAA,IAAAC,gBAAA,CAAAC,OAAA,QAAAP,iBAAA;IAAA,IAAAQ,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAAA,IAAAC,gBAAA,CAAAD,OAAA;IAEA,IAAI,CAACE,UAAU,GAAG,CAAC,CAAC;IACpB,IAAI,CAACN,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACO,IAAI,GAAG,CAAC;IACb,IAAI,CAACC,EAAE,GAAG,IAAI;IAGd,IAAI,CAACC,IAAI,GAAGX,GAAG;IACf,IAAI,CAACY,SAAS,GAAG,CAAC,CAAC;IACnB,IAAI,CAACC,KAAK,GAAGV,IAAI;IACjB,IAAI,CAACW,OAAO,GAAGV,MAAM;IAErBJ,GAAG,CAACe,UAAU,CAACC,gCAAW,EAAE,IAAI,EAAEf,GAAG,CAAC;EACxC;EAAC,IAAAgB,aAAA,CAAAX,OAAA,EAAAP,iBAAA;IAAAmB,GAAA;IAAAC,KAAA,EAGD,SAAAC,aAAA,EAAkC;MAChC,IAAMpB,GAAG,GAAG,IAAI,CAACW,IAAI;MACrBX,GAAG,CAACqB,GAAG,GAAG,IAAI,CAACT,SAAS;MAExB,IAAMX,GAAG,GAAGD,GAAG,CAACsB,UAAU,CAAC,CAAC,GAAGtB,GAAG,CAACqB,GAAG;MACtC,IAAIE,GAAG,GAAG,CAAC;MACX,IAAIC,MAAM,GAAG,CAAC;MACd,IAAIC,CAAC,GAAG,CAAC;MACT,IAAIC,CAAC,GAAG,CAAC;MACT,IAAMC,KAAmB,GAAG,EAAE;MAC9B,IAAIC,IAA4B;MAEhC,OAAO5B,GAAG,CAACqB,GAAG,GAAGpB,GAAG,EAAE;QACpB,IAAIuB,MAAM,IAAI,CAAC,EAAE;UACf,IAAMK,MAAM,GAAG7B,GAAG,CAACsB,UAAU,CAAC,CAAC;UAC/BC,GAAG,GAAGM,MAAM,GAAG,GAAG;UAClBL,MAAM,GAAGK,MAAM,IAAI,CAAC;QACtB;QAEAL,MAAM,EAAE;QAER,IAAID,GAAG,KAAK,CAAC,IAAIA,GAAG,KAAK,CAAC,EAAE;UAC1BE,CAAC,IAAIzB,GAAG,CAAC8B,WAAW,CAAC,CAAC;UACtBJ,CAAC,IAAI1B,GAAG,CAAC8B,WAAW,CAAC,CAAC;UAEtB,IAAIP,GAAG,KAAK,CAAC,EAAE;YAEb,IAAIK,IAAI,EAAED,KAAK,CAACI,IAAI,CAACH,IAAI,CAAC;YAC1BA,IAAI,GAAG,EAAE;UACX;UACA,IAAIA,IAAI,EAAEA,IAAI,CAACG,IAAI,CAAC,CAACN,CAAC,EAAEC,CAAC,CAAC,CAAC;QAC7B,CAAC,MAAM,IAAIH,GAAG,KAAK,CAAC,EAAE;UAEpB,IAAIK,IAAI,EAAE;YACRA,IAAI,CAACG,IAAI,CAACH,IAAI,CAAC,CAAC,CAAC,CAACI,KAAK,CAAC,CAAC,CAAC;UAC5B;QACF,CAAC,MAAM;UACL,MAAM,IAAIC,KAAK,oBAAAC,MAAA,CAAoBX,GAAG,CAAE,CAAC;QAC3C;MACF;MAEA,IAAIK,IAAI,EAAED,KAAK,CAACI,IAAI,CAACH,IAAI,CAAC;MAE1B,OAAOD,KAAK;IACd;EAAC;IAAAT,GAAA;IAAAC,KAAA,EAGD,SAAAgB,KAAA,EAAO;MACL,IAAMnC,GAAG,GAAG,IAAI,CAACW,IAAI;MACrBX,GAAG,CAACqB,GAAG,GAAG,IAAI,CAACT,SAAS;MAExB,IAAMX,GAAG,GAAGD,GAAG,CAACsB,UAAU,CAAC,CAAC,GAAGtB,GAAG,CAACqB,GAAG;MACtC,IAAIE,GAAG,GAAG,CAAC;MACX,IAAIC,MAAM,GAAG,CAAC;MACd,IAAIC,CAAC,GAAG,CAAC;MACT,IAAIC,CAAC,GAAG,CAAC;MACT,IAAIU,EAAE,GAAGC,QAAQ;MACjB,IAAIC,EAAE,GAAG,CAACD,QAAQ;MAClB,IAAIE,EAAE,GAAGF,QAAQ;MACjB,IAAIG,EAAE,GAAG,CAACH,QAAQ;MAElB,OAAOrC,GAAG,CAACqB,GAAG,GAAGpB,GAAG,EAAE;QACpB,IAAIuB,MAAM,IAAI,CAAC,EAAE;UACf,IAAMK,MAAM,GAAG7B,GAAG,CAACsB,UAAU,CAAC,CAAC;UAC/BC,GAAG,GAAGM,MAAM,GAAG,GAAG;UAClBL,MAAM,GAAGK,MAAM,IAAI,CAAC;QACtB;QAEAL,MAAM,EAAE;QAER,IAAID,GAAG,KAAK,CAAC,IAAIA,GAAG,KAAK,CAAC,EAAE;UAC1BE,CAAC,IAAIzB,GAAG,CAAC8B,WAAW,CAAC,CAAC;UACtBJ,CAAC,IAAI1B,GAAG,CAAC8B,WAAW,CAAC,CAAC;UACtB,IAAIL,CAAC,GAAGW,EAAE,EAAEA,EAAE,GAAGX,CAAC;UAClB,IAAIA,CAAC,GAAGa,EAAE,EAAEA,EAAE,GAAGb,CAAC;UAClB,IAAIC,CAAC,GAAGa,EAAE,EAAEA,EAAE,GAAGb,CAAC;UAClB,IAAIA,CAAC,GAAGc,EAAE,EAAEA,EAAE,GAAGd,CAAC;QACpB,CAAC,MAAM,IAAIH,GAAG,KAAK,CAAC,EAAE;UACpB,MAAM,IAAIU,KAAK,oBAAAC,MAAA,CAAoBX,GAAG,CAAE,CAAC;QAC3C;MACF;MAEA,OAAO,CAACa,EAAE,EAAEG,EAAE,EAAED,EAAE,EAAEE,EAAE,CAAC;IACzB;EAAC;IAAAtB,GAAA;IAAAC,KAAA,EAED,SAAAsB,WAAWC,SAAS,EAAE;MACpB,IAAIC,MAAM,GAAG,IAAI,CAACvB,YAAY,CAAC,CAAC;MAChC,IAAIX,IAAI,GAAGV,iBAAiB,CAAC6C,KAAK,CAAC,IAAI,CAACnC,IAAI,CAAC;MAC7C,IAAIoC,CAAS;MACb,IAAIC,CAAS;MAGb,QAAQ,IAAI,CAACrC,IAAI;QACf,KAAK,CAAC;UACJ,IAAMsC,MAAgB,GAAG,EAAE;UAC3B,KAAKF,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACnB,MAAM,EAAEqB,CAAC,EAAE,EAAE;YAClCE,MAAM,CAACF,CAAC,CAAC,GAAGF,MAAM,CAACE,CAAC,CAAC,CAAC,CAAC,CAAC;UAC1B;UACAF,MAAM,GAAGI,MAAM;UACfL,SAAS,CAACC,MAAM,EAAE,IAAI,CAAC;UACvB;QAEF,KAAK,CAAC;UACJ,KAAKE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACnB,MAAM,EAAEqB,CAAC,EAAE,EAAE;YAClCH,SAAS,CAACC,MAAM,CAACE,CAAC,CAAC,EAAE,IAAI,CAAC;UAC5B;UACA;QAEF,KAAK,CAAC;UACJF,MAAM,GAAG,IAAAK,kCAAa,EAACL,MAAM,CAAC;UAC9B,KAAKE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACnB,MAAM,EAAEqB,CAAC,EAAE,EAAE;YAClC,KAAKC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,MAAM,CAACE,CAAC,CAAC,CAACrB,MAAM,EAAEsB,CAAC,EAAE,EAAE;cACrCJ,SAAS,CAACC,MAAM,CAACE,CAAC,CAAC,CAACC,CAAC,CAAC,EAAE,IAAI,CAAC;YAC/B;UACF;UACA;MACJ;MAEA,IAAIH,MAAM,CAACnB,MAAM,KAAK,CAAC,EAAE;QACvBmB,MAAM,GAAGA,MAAM,CAAC,CAAC,CAAC;MACpB,CAAC,MAAM;QACLlC,IAAI,WAAAyB,MAAA,CAAWzB,IAAI,CAAE;MACvB;MAEA,IAAMwC,MAA4B,GAAG;QACnCxC,IAAI,EAAE,SAAS;QACfyC,QAAQ,EAAE;UACRzC,IAAI,EAAJA,IAAI;UACJ0C,WAAW,EAAER;QACf,CAAC;QACDnC,UAAU,EAAE,IAAI,CAACA;MACnB,CAAC;MAED,IAAI,IAAI,CAACE,EAAE,KAAK,IAAI,EAAE;QACpBuC,MAAM,CAACvC,EAAE,GAAG,IAAI,CAACA,EAAE;MACrB;MAEA,OAAOuC,MAAM;IACf;EAAC;IAAA/B,GAAA;IAAAC,KAAA,EAED,SAAAiC,UACEC,OAA+F,EACzE;MACtB,IAAI,OAAOA,OAAO,KAAK,UAAU,EAAE;QACjC,OAAO,IAAI,CAACZ,UAAU,CAACY,OAAO,CAAC;MACjC;MACA,IAAO5B,CAAC,GAAU4B,OAAO,CAAlB5B,CAAC;QAAEC,CAAC,GAAO2B,OAAO,CAAf3B,CAAC;QAAE4B,CAAC,GAAID,OAAO,CAAZC,CAAC;MACd,IAAMC,IAAI,GAAG,IAAI,CAACrD,MAAM,GAAGsD,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEH,CAAC,CAAC;MACzC,IAAMI,EAAE,GAAG,IAAI,CAACxD,MAAM,GAAGuB,CAAC;MAC1B,IAAMkC,EAAE,GAAG,IAAI,CAACzD,MAAM,GAAGwB,CAAC;MAE1B,SAASkC,OAAOA,CAAChC,IAAc,EAAE;QAC/B,KAAK,IAAIkB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGlB,IAAI,CAACJ,MAAM,EAAEsB,CAAC,EAAE,EAAE;UACpC,IAAMe,CAAC,GAAGjC,IAAI,CAACkB,CAAC,CAAC;UACjBe,CAAC,CAAC,CAAC,CAAC,GAAI,CAACA,CAAC,CAAC,CAAC,CAAC,GAAGH,EAAE,IAAI,GAAG,GAAIH,IAAI,GAAG,GAAG;UACvC,IAAMf,EAAE,GAAG,GAAG,GAAI,CAACqB,CAAC,CAAC,CAAC,CAAC,GAAGF,EAAE,IAAI,GAAG,GAAIJ,IAAI;UAC3CM,CAAC,CAAC,CAAC,CAAC,GAAI,GAAG,GAAGL,IAAI,CAACM,EAAE,GAAIN,IAAI,CAACO,IAAI,CAACP,IAAI,CAACQ,GAAG,CAAExB,EAAE,GAAGgB,IAAI,CAACM,EAAE,GAAI,GAAG,CAAC,CAAC,GAAG,EAAE;QACzE;MACF;MACA,OAAO,IAAI,CAACrB,UAAU,CAACmB,OAAO,CAAC;IACjC;EAAC;IAAA1C,GAAA;IAAA+C,GAAA,EA3LD,SAAAA,IAAA,EAAmB;MACjB,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC;IACtD;EAAC;EAAA,OAAAlE,iBAAA;AAAA;AAAAmE,OAAA,CAAA5D,OAAA,GAAAP,iBAAA"}
|
|
1
|
+
{"version":3,"file":"vector-tile-feature.js","names":["_mapboxUtilFunctions","require","VectorTileFeature","types","constructor","pbf","end","extent","keys","values","_defineProperty2","default","properties","type","id","_pbf","_geometry","_keys","_values","readFields","readFeature","loadGeometry","pos","readVarint","cmd","length","x","y","lines","line","cmdLen","readSVarint","push","slice","Error","concat","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","exports"],"sources":["../../../../src/lib/mapbox-vector-tile/vector-tile-feature.ts"],"sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\nimport Protobuf from 'pbf';\nimport {MVTMapboxCoordinates, MVTMapboxGeometry} from '../types';\nimport {readFeature, classifyRings} from '../../helpers/mapbox-util-functions';\n\nexport default class VectorTileFeature {\n properties: {[x: string]: string | number | boolean | null};\n extent: any;\n type: number;\n id: number | null;\n _pbf: Protobuf;\n _geometry: number;\n _keys: string[];\n _values: (string | number | boolean | null)[];\n static get types() {\n return ['Unknown', 'Point', 'LineString', 'Polygon'];\n }\n\n constructor(\n pbf: Protobuf,\n end: number,\n extent: any,\n keys: string[],\n values: (string | number | boolean | null)[]\n ) {\n // Public\n this.properties = {};\n this.extent = extent;\n this.type = 0;\n this.id = null;\n\n // Private\n this._pbf = pbf;\n this._geometry = -1;\n this._keys = keys;\n this._values = values;\n\n pbf.readFields(readFeature, this, end);\n }\n\n // eslint-disable-next-line complexity, max-statements\n loadGeometry(): MVTMapboxGeometry {\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n const end = pbf.readVarint() + pbf.pos;\n let cmd = 1;\n let length = 0;\n let x = 0;\n let y = 0;\n const lines: number[][][] = [];\n let line: number[][] | undefined;\n\n while (pbf.pos < end) {\n if (length <= 0) {\n const cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n\n if (cmd === 1) {\n // moveTo\n if (line) lines.push(line);\n line = [];\n }\n if (line) line.push([x, y]);\n } else if (cmd === 7) {\n // Workaround for https://github.com/mapbox/mapnik-vector-tile/issues/90\n if (line) {\n line.push(line[0].slice()); // closePolygon\n }\n } else {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n if (line) lines.push(line);\n\n return lines;\n }\n\n // eslint-disable-next-line max-statements\n bbox() {\n const pbf = this._pbf;\n pbf.pos = this._geometry;\n\n const end = pbf.readVarint() + pbf.pos;\n let cmd = 1;\n let length = 0;\n let x = 0;\n let y = 0;\n let x1 = Infinity;\n let x2 = -Infinity;\n let y1 = Infinity;\n let y2 = -Infinity;\n\n while (pbf.pos < end) {\n if (length <= 0) {\n const cmdLen = pbf.readVarint();\n cmd = cmdLen & 0x7;\n length = cmdLen >> 3;\n }\n\n length--;\n\n if (cmd === 1 || cmd === 2) {\n x += pbf.readSVarint();\n y += pbf.readSVarint();\n if (x < x1) x1 = x;\n if (x > x2) x2 = x;\n if (y < y1) y1 = y;\n if (y > y2) y2 = y;\n } else if (cmd !== 7) {\n throw new Error(`unknown command ${cmd}`);\n }\n }\n\n return [x1, y1, x2, y2];\n }\n\n _toGeoJSON(transform) {\n let coords = this.loadGeometry();\n let type = VectorTileFeature.types[this.type];\n let i: number;\n let j: number;\n\n // eslint-disable-next-line default-case\n switch (this.type) {\n case 1:\n const points: number[] = [];\n for (i = 0; i < coords.length; i++) {\n points[i] = coords[i][0];\n }\n coords = points;\n transform(coords, this);\n break;\n\n case 2:\n for (i = 0; i < coords.length; i++) {\n transform(coords[i], this);\n }\n break;\n\n case 3:\n coords = classifyRings(coords);\n for (i = 0; i < coords.length; i++) {\n for (j = 0; j < coords[i].length; j++) {\n transform(coords[i][j], this);\n }\n }\n break;\n }\n\n if (coords.length === 1) {\n coords = coords[0];\n } else {\n type = `Multi${type}`;\n }\n\n const result: MVTMapboxCoordinates = {\n type: 'Feature',\n geometry: {\n type,\n coordinates: coords\n },\n properties: this.properties\n };\n\n if (this.id !== null) {\n result.id = this.id;\n }\n\n return result;\n }\n\n toGeoJSON(\n options: {x: number; y: number; z: number} | ((data: number[], feature: {extent: any}) => void)\n ): MVTMapboxCoordinates {\n if (typeof options === 'function') {\n return this._toGeoJSON(options);\n }\n const {x, y, z} = options;\n const size = this.extent * Math.pow(2, z);\n const x0 = this.extent * x;\n const y0 = this.extent * y;\n\n function project(line: number[]) {\n for (let j = 0; j < line.length; j++) {\n const p = line[j];\n p[0] = ((p[0] + x0) * 360) / size - 180;\n const y2 = 180 - ((p[1] + y0) * 360) / size;\n p[1] = (360 / Math.PI) * Math.atan(Math.exp((y2 * Math.PI) / 180)) - 90;\n }\n }\n return this._toGeoJSON(project);\n }\n}\n"],"mappings":"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"}
|
|
@@ -5,13 +5,10 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
9
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
9
|
var _vectorTileFeature = _interopRequireDefault(require("./vector-tile-feature"));
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
(0, _classCallCheck2.default)(this, VectorTileLayer);
|
|
10
|
+
class VectorTileLayer {
|
|
11
|
+
constructor(pbf, end) {
|
|
15
12
|
(0, _defineProperty2.default)(this, "version", void 0);
|
|
16
13
|
(0, _defineProperty2.default)(this, "name", void 0);
|
|
17
14
|
(0, _defineProperty2.default)(this, "extent", void 0);
|
|
@@ -31,19 +28,15 @@ var VectorTileLayer = function () {
|
|
|
31
28
|
pbf.readFields(readLayer, this, end);
|
|
32
29
|
this.length = this._features.length;
|
|
33
30
|
}
|
|
34
|
-
(
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
if (i < 0 || i >= this._features.length) {
|
|
38
|
-
throw new Error('feature index out of bounds');
|
|
39
|
-
}
|
|
40
|
-
this._pbf.pos = this._features[i];
|
|
41
|
-
var end = this._pbf.readVarint() + this._pbf.pos;
|
|
42
|
-
return new _vectorTileFeature.default(this._pbf, end, this.extent, this._keys, this._values);
|
|
31
|
+
feature(i) {
|
|
32
|
+
if (i < 0 || i >= this._features.length) {
|
|
33
|
+
throw new Error('feature index out of bounds');
|
|
43
34
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
35
|
+
this._pbf.pos = this._features[i];
|
|
36
|
+
const end = this._pbf.readVarint() + this._pbf.pos;
|
|
37
|
+
return new _vectorTileFeature.default(this._pbf, end, this.extent, this._keys, this._values);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
47
40
|
exports.default = VectorTileLayer;
|
|
48
41
|
function readLayer(tag, layer, pbf) {
|
|
49
42
|
if (layer && pbf) {
|
|
@@ -51,10 +44,10 @@ function readLayer(tag, layer, pbf) {
|
|
|
51
44
|
}
|
|
52
45
|
}
|
|
53
46
|
function readValueMessage(pbf) {
|
|
54
|
-
|
|
55
|
-
|
|
47
|
+
let value = null;
|
|
48
|
+
const end = pbf.readVarint() + pbf.pos;
|
|
56
49
|
while (pbf.pos < end) {
|
|
57
|
-
|
|
50
|
+
const tag = pbf.readVarint() >> 3;
|
|
58
51
|
value = tag === 1 ? pbf.readString() : tag === 2 ? pbf.readFloat() : tag === 3 ? pbf.readDouble() : tag === 4 ? pbf.readVarint64() : tag === 5 ? pbf.readVarint() : tag === 6 ? pbf.readSVarint() : tag === 7 ? pbf.readBoolean() : null;
|
|
59
52
|
}
|
|
60
53
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-tile-layer.js","names":["_vectorTileFeature","_interopRequireDefault","require","VectorTileLayer","pbf","end","
|
|
1
|
+
{"version":3,"file":"vector-tile-layer.js","names":["_vectorTileFeature","_interopRequireDefault","require","VectorTileLayer","constructor","pbf","end","_defineProperty2","default","version","name","extent","length","_pbf","_keys","_values","_features","readFields","readLayer","feature","i","Error","pos","readVarint","VectorTileFeature","exports","tag","layer","readString","push","readValueMessage","value","readFloat","readDouble","readVarint64","readSVarint","readBoolean"],"sources":["../../../../src/lib/mapbox-vector-tile/vector-tile-layer.ts"],"sourcesContent":["/* eslint-disable indent */\n// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\n\nimport Protobuf from 'pbf';\nimport VectorTileFeature from './vector-tile-feature';\n\nexport default class VectorTileLayer {\n version: number;\n name: string;\n extent: number;\n length: number;\n _pbf: Protobuf;\n _keys: string[];\n _values: (string | number | boolean | null)[];\n _features: number[];\n constructor(pbf: Protobuf, end: number) {\n // Public\n this.version = 1;\n this.name = '';\n this.extent = 4096;\n this.length = 0;\n\n // Private\n this._pbf = pbf;\n this._keys = [];\n this._values = [];\n this._features = [];\n\n pbf.readFields(readLayer, this, end);\n\n this.length = this._features.length;\n }\n\n /**\n * return feature `i` from this layer as a `VectorTileFeature`\n * @param index\n * @returns feature\n */\n\n feature(i: number): VectorTileFeature {\n if (i < 0 || i >= this._features.length) {\n throw new Error('feature index out of bounds');\n }\n\n this._pbf.pos = this._features[i];\n\n const end = this._pbf.readVarint() + this._pbf.pos;\n return new VectorTileFeature(this._pbf, end, this.extent, this._keys, this._values);\n }\n}\n\n/**\n *\n * @param tag\n * @param layer\n * @param pbf\n */\nfunction readLayer(tag: number, layer?: VectorTileLayer, pbf?: Protobuf): void {\n if (layer && pbf) {\n if (tag === 15) layer.version = pbf.readVarint();\n else if (tag === 1) layer.name = pbf.readString();\n else if (tag === 5) layer.extent = pbf.readVarint();\n else if (tag === 2) layer._features.push(pbf.pos);\n else if (tag === 3) layer._keys.push(pbf.readString());\n else if (tag === 4) layer._values.push(readValueMessage(pbf));\n }\n}\n\n/**\n *\n * @param pbf\n * @returns value\n */\nfunction readValueMessage(pbf: Protobuf) {\n let value: string | number | boolean | null = null;\n const end = pbf.readVarint() + pbf.pos;\n\n while (pbf.pos < end) {\n const tag = pbf.readVarint() >> 3;\n\n value =\n tag === 1\n ? pbf.readString()\n : tag === 2\n ? pbf.readFloat()\n : tag === 3\n ? pbf.readDouble()\n : tag === 4\n ? pbf.readVarint64()\n : tag === 5\n ? pbf.readVarint()\n : tag === 6\n ? pbf.readSVarint()\n : tag === 7\n ? pbf.readBoolean()\n : null;\n }\n\n return value;\n}\n"],"mappings":"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"}
|
|
@@ -5,20 +5,19 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
9
|
-
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
10
8
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
9
|
var _vectorTileLayer = _interopRequireDefault(require("./vector-tile-layer"));
|
|
12
|
-
|
|
13
|
-
(
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
10
|
+
class VectorTile {
|
|
11
|
+
constructor(pbf, end) {
|
|
12
|
+
(0, _defineProperty2.default)(this, "layers", void 0);
|
|
13
|
+
this.layers = pbf.readFields(readTile, {}, end);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
17
16
|
exports.default = VectorTile;
|
|
18
17
|
function readTile(tag, layers, pbf) {
|
|
19
18
|
if (tag === 3) {
|
|
20
19
|
if (pbf) {
|
|
21
|
-
|
|
20
|
+
const layer = new _vectorTileLayer.default(pbf, pbf.readVarint() + pbf.pos);
|
|
22
21
|
if (layer.length && layers) {
|
|
23
22
|
layers[layer.name] = layer;
|
|
24
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-tile.js","names":["_vectorTileLayer","_interopRequireDefault","require","VectorTile","
|
|
1
|
+
{"version":3,"file":"vector-tile.js","names":["_vectorTileLayer","_interopRequireDefault","require","VectorTile","constructor","pbf","end","_defineProperty2","default","layers","readFields","readTile","exports","tag","layer","VectorTileLayer","readVarint","pos","length","name"],"sources":["../../../../src/lib/mapbox-vector-tile/vector-tile.ts"],"sourcesContent":["// This code is forked from https://github.com/mapbox/vector-tile-js under BSD 3-clause license.\n\nimport VectorTileLayer from './vector-tile-layer';\nimport Protobuf from 'pbf';\n\nexport default class VectorTile {\n layers: {[x: string]: VectorTileLayer};\n constructor(pbf: Protobuf, end?: number) {\n this.layers = pbf.readFields(readTile, {}, end);\n }\n}\n\n/**\n *\n * @param tag\n * @param layers\n * @param pbf\n */\nfunction readTile(tag: number, layers?: {[x: string]: VectorTileLayer}, pbf?: Protobuf): void {\n if (tag === 3) {\n if (pbf) {\n const layer = new VectorTileLayer(pbf, pbf.readVarint() + pbf.pos);\n if (layer.length && layers) {\n layers[layer.name] = layer;\n }\n }\n }\n}\n"],"mappings":";;;;;;;;AAEA,IAAAA,gBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAGe,MAAMC,UAAU,CAAC;EAE9BC,WAAWA,CAACC,GAAa,EAAEC,GAAY,EAAE;IAAA,IAAAC,gBAAA,CAAAC,OAAA;IACvC,IAAI,CAACC,MAAM,GAAGJ,GAAG,CAACK,UAAU,CAACC,QAAQ,EAAE,CAAC,CAAC,EAAEL,GAAG,CAAC;EACjD;AACF;AAACM,OAAA,CAAAJ,OAAA,GAAAL,UAAA;AAQD,SAASQ,QAAQA,CAACE,GAAW,EAAEJ,MAAuC,EAAEJ,GAAc,EAAQ;EAC5F,IAAIQ,GAAG,KAAK,CAAC,EAAE;IACb,IAAIR,GAAG,EAAE;MACP,MAAMS,KAAK,GAAG,IAAIC,wBAAe,CAACV,GAAG,EAAEA,GAAG,CAACW,UAAU,CAAC,CAAC,GAAGX,GAAG,CAACY,GAAG,CAAC;MAClE,IAAIH,KAAK,CAACI,MAAM,IAAIT,MAAM,EAAE;QAC1BA,MAAM,CAACK,KAAK,CAACK,IAAI,CAAC,GAAGL,KAAK;MAC5B;IACF;EACF;AACF"}
|