@deck.gl/geo-layers 8.7.0-alpha.3 → 8.7.0-alpha.7
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 +9310 -6135
- package/dist/es5/great-circle-layer/great-circle-layer.js +26 -1
- package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-cluster-layer.js +149 -87
- package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
- package/dist/es5/h3-layers/h3-hexagon-layer.js +326 -230
- package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/es5/index.js +9 -9
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/mesh-layer/mesh-layer-vertex.glsl.js +1 -1
- package/dist/es5/mesh-layer/mesh-layer.js +153 -132
- package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/es5/mvt-layer/coordinate-transform.js +46 -20
- package/dist/es5/mvt-layer/coordinate-transform.js.map +1 -1
- package/dist/es5/mvt-layer/find-index-binary.js +45 -26
- package/dist/es5/mvt-layer/find-index-binary.js.map +1 -1
- package/dist/es5/mvt-layer/mvt-layer.js +395 -280
- package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-geometry.js +43 -32
- package/dist/es5/s2-layer/s2-geometry.js.map +1 -1
- package/dist/es5/s2-layer/s2-layer.js +104 -69
- package/dist/es5/s2-layer/s2-layer.js.map +1 -1
- package/dist/es5/s2-layer/s2-utils.js +27 -28
- package/dist/es5/s2-layer/s2-utils.js.map +1 -1
- package/dist/es5/terrain-layer/terrain-layer.js +250 -208
- package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/es5/tile-3d-layer/tile-3d-layer.js +384 -329
- package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/es5/tile-layer/tile-2d-header.js +182 -118
- package/dist/es5/tile-layer/tile-2d-header.js.map +1 -1
- package/dist/es5/tile-layer/tile-2d-traversal.js +176 -113
- package/dist/es5/tile-layer/tile-2d-traversal.js.map +1 -1
- package/dist/es5/tile-layer/tile-layer.js +253 -214
- package/dist/es5/tile-layer/tile-layer.js.map +1 -1
- package/dist/es5/tile-layer/tileset-2d.js +519 -300
- package/dist/es5/tile-layer/tileset-2d.js.map +1 -1
- package/dist/es5/tile-layer/utils.js +110 -61
- package/dist/es5/tile-layer/utils.js.map +1 -1
- package/dist/es5/trips-layer/trips-layer.js +81 -44
- package/dist/es5/trips-layer/trips-layer.js.map +1 -1
- package/dist/esm/h3-layers/h3-hexagon-layer.js +2 -1
- package/dist/esm/h3-layers/h3-hexagon-layer.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js +1 -1
- package/dist/esm/mesh-layer/mesh-layer-vertex.glsl.js.map +1 -1
- package/dist/esm/mesh-layer/mesh-layer.js +2 -8
- package/dist/esm/mesh-layer/mesh-layer.js.map +1 -1
- package/dist/esm/mvt-layer/coordinate-transform.js +1 -1
- package/dist/esm/mvt-layer/coordinate-transform.js.map +1 -1
- package/dist/esm/mvt-layer/mvt-layer.js +27 -1
- package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
- package/dist/esm/terrain-layer/terrain-layer.js +8 -10
- package/dist/esm/terrain-layer/terrain-layer.js.map +1 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.js +2 -1
- package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +1 -1
- package/dist/esm/tile-layer/tile-layer.js +8 -16
- package/dist/esm/tile-layer/tile-layer.js.map +1 -1
- package/dist/esm/tile-layer/tileset-2d.js +85 -79
- package/dist/esm/tile-layer/tileset-2d.js.map +1 -1
- package/dist.min.js +2 -2
- package/package.json +12 -12
- package/src/h3-layers/h3-hexagon-layer.js +2 -1
- package/src/{index.js → index.ts} +0 -0
- package/src/mesh-layer/mesh-layer-vertex.glsl.js +24 -23
- package/src/mesh-layer/mesh-layer.js +5 -4
- package/src/mvt-layer/coordinate-transform.js +1 -1
- package/src/mvt-layer/mvt-layer.js +17 -1
- package/src/terrain-layer/terrain-layer.js +10 -9
- package/src/tile-3d-layer/tile-3d-layer.js +10 -2
- package/src/tile-layer/tile-layer.js +11 -12
- package/src/tile-layer/tileset-2d.js +103 -90
|
@@ -1,29 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
|
4
6
|
value: true
|
|
5
7
|
});
|
|
6
8
|
exports.transform = transform;
|
|
7
9
|
|
|
8
|
-
var
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
13
|
+
|
|
14
|
+
var _core = require("@math.gl/core");
|
|
15
|
+
|
|
16
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
9
17
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
18
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
19
|
+
|
|
20
|
+
var availableTransformations = {
|
|
21
|
+
Point: Point,
|
|
22
|
+
MultiPoint: MultiPoint,
|
|
23
|
+
LineString: LineString,
|
|
24
|
+
MultiLineString: MultiLineString,
|
|
25
|
+
Polygon: Polygon,
|
|
26
|
+
MultiPolygon: MultiPolygon
|
|
17
27
|
};
|
|
18
28
|
|
|
19
|
-
function Point(
|
|
20
|
-
|
|
21
|
-
|
|
29
|
+
function Point(_ref, _ref2, viewport) {
|
|
30
|
+
var _ref3 = (0, _slicedToArray2.default)(_ref, 2),
|
|
31
|
+
pointX = _ref3[0],
|
|
32
|
+
pointY = _ref3[1];
|
|
33
|
+
|
|
34
|
+
var _ref4 = (0, _slicedToArray2.default)(_ref2, 2),
|
|
35
|
+
nw = _ref4[0],
|
|
36
|
+
se = _ref4[1];
|
|
37
|
+
|
|
38
|
+
var x = (0, _core.lerp)(nw[0], se[0], pointX);
|
|
39
|
+
var y = (0, _core.lerp)(nw[1], se[1], pointY);
|
|
22
40
|
return viewport.unprojectFlat([x, y]);
|
|
23
41
|
}
|
|
24
42
|
|
|
25
43
|
function getPoints(geometry, bbox, viewport) {
|
|
26
|
-
return geometry.map(
|
|
44
|
+
return geometry.map(function (g) {
|
|
45
|
+
return Point(g, bbox, viewport);
|
|
46
|
+
});
|
|
27
47
|
}
|
|
28
48
|
|
|
29
49
|
function MultiPoint(multiPoint, bbox, viewport) {
|
|
@@ -35,23 +55,29 @@ function LineString(line, bbox, viewport) {
|
|
|
35
55
|
}
|
|
36
56
|
|
|
37
57
|
function MultiLineString(multiLineString, bbox, viewport) {
|
|
38
|
-
return multiLineString.map(
|
|
58
|
+
return multiLineString.map(function (lineString) {
|
|
59
|
+
return LineString(lineString, bbox, viewport);
|
|
60
|
+
});
|
|
39
61
|
}
|
|
40
62
|
|
|
41
63
|
function Polygon(polygon, bbox, viewport) {
|
|
42
|
-
return polygon.map(
|
|
64
|
+
return polygon.map(function (polygonRing) {
|
|
65
|
+
return getPoints(polygonRing, bbox, viewport);
|
|
66
|
+
});
|
|
43
67
|
}
|
|
44
68
|
|
|
45
69
|
function MultiPolygon(multiPolygon, bbox, viewport) {
|
|
46
|
-
return multiPolygon.map(
|
|
70
|
+
return multiPolygon.map(function (polygon) {
|
|
71
|
+
return Polygon(polygon, bbox, viewport);
|
|
72
|
+
});
|
|
47
73
|
}
|
|
48
74
|
|
|
49
75
|
function transform(geometry, bbox, viewport) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
return {
|
|
76
|
+
var nw = viewport.projectFlat([bbox.west, bbox.north]);
|
|
77
|
+
var se = viewport.projectFlat([bbox.east, bbox.south]);
|
|
78
|
+
var projectedBbox = [nw, se];
|
|
79
|
+
return _objectSpread(_objectSpread({}, geometry), {}, {
|
|
54
80
|
coordinates: availableTransformations[geometry.type](geometry.coordinates, projectedBbox, viewport)
|
|
55
|
-
};
|
|
81
|
+
});
|
|
56
82
|
}
|
|
57
83
|
//# sourceMappingURL=coordinate-transform.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mvt-layer/coordinate-transform.js"],"names":["availableTransformations","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","pointX","pointY","nw","se","
|
|
1
|
+
{"version":3,"sources":["../../../src/mvt-layer/coordinate-transform.js"],"names":["availableTransformations","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","viewport","pointX","pointY","nw","se","x","y","unprojectFlat","getPoints","geometry","bbox","map","g","multiPoint","line","multiLineString","lineString","polygon","polygonRing","multiPolygon","transform","projectFlat","west","north","east","south","projectedBbox","coordinates","type"],"mappings":"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","sourcesContent":["import {lerp} from '@math.gl/core';\n\nconst availableTransformations = {\n Point,\n MultiPoint,\n LineString,\n MultiLineString,\n Polygon,\n MultiPolygon\n};\n\nfunction Point([pointX, pointY], [nw, se], viewport) {\n const x = lerp(nw[0], se[0], pointX);\n const y = lerp(nw[1], se[1], pointY);\n\n return viewport.unprojectFlat([x, y]);\n}\n\nfunction getPoints(geometry, bbox, viewport) {\n return geometry.map(g => Point(g, bbox, viewport));\n}\n\nfunction MultiPoint(multiPoint, bbox, viewport) {\n return getPoints(multiPoint, bbox, viewport);\n}\n\nfunction LineString(line, bbox, viewport) {\n return getPoints(line, bbox, viewport);\n}\n\nfunction MultiLineString(multiLineString, bbox, viewport) {\n return multiLineString.map(lineString => LineString(lineString, bbox, viewport));\n}\n\nfunction Polygon(polygon, bbox, viewport) {\n return polygon.map(polygonRing => getPoints(polygonRing, bbox, viewport));\n}\n\nfunction MultiPolygon(multiPolygon, bbox, viewport) {\n return multiPolygon.map(polygon => Polygon(polygon, bbox, viewport));\n}\n\nexport function transform(geometry, bbox, viewport) {\n const nw = viewport.projectFlat([bbox.west, bbox.north]);\n const se = viewport.projectFlat([bbox.east, bbox.south]);\n const projectedBbox = [nw, se];\n\n return {\n ...geometry,\n coordinates: availableTransformations[geometry.type](\n geometry.coordinates,\n projectedBbox,\n viewport\n )\n };\n}\n"],"file":"coordinate-transform.js"}
|
|
@@ -4,32 +4,49 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.default = findIndexBinary;
|
|
7
|
-
|
|
7
|
+
|
|
8
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
9
|
+
|
|
10
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
|
+
|
|
12
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
13
|
+
|
|
14
|
+
var GEOM_TYPES = ['points', 'lines', 'polygons'];
|
|
8
15
|
|
|
9
16
|
function findIndexBinary(data, uniqueIdProperty, featureId, layerName) {
|
|
10
|
-
|
|
11
|
-
|
|
17
|
+
var _iterator = _createForOfIteratorHelper(GEOM_TYPES),
|
|
18
|
+
_step;
|
|
19
|
+
|
|
20
|
+
try {
|
|
21
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
22
|
+
var gt = _step.value;
|
|
23
|
+
var index = data[gt] && findIndexByType(data[gt], uniqueIdProperty, featureId, layerName);
|
|
12
24
|
|
|
13
|
-
|
|
14
|
-
|
|
25
|
+
if (index >= 0) {
|
|
26
|
+
return index;
|
|
27
|
+
}
|
|
15
28
|
}
|
|
29
|
+
} catch (err) {
|
|
30
|
+
_iterator.e(err);
|
|
31
|
+
} finally {
|
|
32
|
+
_iterator.f();
|
|
16
33
|
}
|
|
17
34
|
|
|
18
35
|
return -1;
|
|
19
36
|
}
|
|
20
37
|
|
|
21
38
|
function findIndexByType(geomData, uniqueIdProperty, featureId, layerName) {
|
|
22
|
-
|
|
39
|
+
var featureIds = geomData.featureIds.value;
|
|
23
40
|
|
|
24
41
|
if (!featureIds.length) {
|
|
25
42
|
return -1;
|
|
26
43
|
}
|
|
27
44
|
|
|
28
|
-
|
|
29
|
-
|
|
45
|
+
var startFeatureIndex = 0;
|
|
46
|
+
var endFeatureIndex = featureIds[featureIds.length - 1] + 1;
|
|
30
47
|
|
|
31
48
|
if (layerName) {
|
|
32
|
-
|
|
49
|
+
var layerRange = getLayerRange(geomData, layerName);
|
|
33
50
|
|
|
34
51
|
if (layerRange) {
|
|
35
52
|
startFeatureIndex = layerRange[0];
|
|
@@ -39,15 +56,21 @@ function findIndexByType(geomData, uniqueIdProperty, featureId, layerName) {
|
|
|
39
56
|
}
|
|
40
57
|
}
|
|
41
58
|
|
|
42
|
-
|
|
59
|
+
var featureIndex = -1;
|
|
43
60
|
|
|
44
61
|
if (uniqueIdProperty in geomData.numericProps) {
|
|
45
|
-
|
|
62
|
+
var vertexIndex = geomData.numericProps[uniqueIdProperty].value.findIndex(function (x, i) {
|
|
63
|
+
return x === featureId && featureIds[i] >= startFeatureIndex && featureIds[i] < endFeatureIndex;
|
|
64
|
+
});
|
|
46
65
|
return vertexIndex >= 0 ? geomData.globalFeatureIds.value[vertexIndex] : -1;
|
|
47
66
|
} else if (uniqueIdProperty) {
|
|
48
|
-
featureIndex = findIndex(geomData.properties,
|
|
67
|
+
featureIndex = findIndex(geomData.properties, function (elem) {
|
|
68
|
+
return elem[uniqueIdProperty] === featureId;
|
|
69
|
+
}, startFeatureIndex, endFeatureIndex);
|
|
49
70
|
} else {
|
|
50
|
-
featureIndex = findIndex(geomData.fields,
|
|
71
|
+
featureIndex = findIndex(geomData.fields, function (elem) {
|
|
72
|
+
return elem.id === featureId;
|
|
73
|
+
}, startFeatureIndex, endFeatureIndex);
|
|
51
74
|
}
|
|
52
75
|
|
|
53
76
|
return featureIndex >= 0 ? getGlobalFeatureId(geomData, featureIndex) : -1;
|
|
@@ -55,15 +78,11 @@ function findIndexByType(geomData, uniqueIdProperty, featureId, layerName) {
|
|
|
55
78
|
|
|
56
79
|
function getLayerRange(geomData, layerName) {
|
|
57
80
|
if (!geomData.__layers) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
properties
|
|
61
|
-
} = geomData;
|
|
81
|
+
var layerNames = {};
|
|
82
|
+
var properties = geomData.properties;
|
|
62
83
|
|
|
63
|
-
for (
|
|
64
|
-
|
|
65
|
-
layerName: key
|
|
66
|
-
} = properties[i];
|
|
84
|
+
for (var i = 0; i < properties.length; i++) {
|
|
85
|
+
var key = properties[i].layerName;
|
|
67
86
|
|
|
68
87
|
if (!key) {} else if (layerNames[key]) {
|
|
69
88
|
layerNames[key][1] = i;
|
|
@@ -80,11 +99,11 @@ function getLayerRange(geomData, layerName) {
|
|
|
80
99
|
|
|
81
100
|
function getGlobalFeatureId(geomData, featureIndex) {
|
|
82
101
|
if (!geomData.__ids) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
102
|
+
var result = [];
|
|
103
|
+
var featureIds = geomData.featureIds.value;
|
|
104
|
+
var globalFeatureIds = geomData.globalFeatureIds.value;
|
|
86
105
|
|
|
87
|
-
for (
|
|
106
|
+
for (var i = 0; i < featureIds.length; i++) {
|
|
88
107
|
result[featureIds[i]] = globalFeatureIds[i];
|
|
89
108
|
}
|
|
90
109
|
|
|
@@ -95,7 +114,7 @@ function getGlobalFeatureId(geomData, featureIndex) {
|
|
|
95
114
|
}
|
|
96
115
|
|
|
97
116
|
function findIndex(array, predicate, startIndex, endIndex) {
|
|
98
|
-
for (
|
|
117
|
+
for (var i = startIndex; i < endIndex; i++) {
|
|
99
118
|
if (predicate(array[i], i)) {
|
|
100
119
|
return i;
|
|
101
120
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/mvt-layer/find-index-binary.js"],"names":["GEOM_TYPES","findIndexBinary","data","uniqueIdProperty","featureId","layerName","gt","index","findIndexByType","geomData","featureIds","value","length","startFeatureIndex","endFeatureIndex","layerRange","getLayerRange","featureIndex","numericProps","vertexIndex","findIndex","x","i","globalFeatureIds","properties","elem","fields","id","getGlobalFeatureId","__layers","layerNames","key","__ids","result","array","predicate","startIndex","endIndex"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/mvt-layer/find-index-binary.js"],"names":["GEOM_TYPES","findIndexBinary","data","uniqueIdProperty","featureId","layerName","gt","index","findIndexByType","geomData","featureIds","value","length","startFeatureIndex","endFeatureIndex","layerRange","getLayerRange","featureIndex","numericProps","vertexIndex","findIndex","x","i","globalFeatureIds","properties","elem","fields","id","getGlobalFeatureId","__layers","layerNames","key","__ids","result","array","predicate","startIndex","endIndex"],"mappings":"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","sourcesContent":["const GEOM_TYPES = ['points', 'lines', 'polygons'];\n/**\n * Return the index of feature (numericProps or featureIds) for given feature id\n * Example: findIndexBinary(data, 'id', 33) will return the index in the array of numericProps\n * of the feature 33.\n * @param {Object} data - The data in binary format\n * @param {String} uniqueIdProperty - Name of the unique id property\n * @param {Number|String} featureId - feature id to find\n * @param {String} layerName - the layer to search in\n */\nexport default function findIndexBinary(data, uniqueIdProperty, featureId, layerName) {\n for (const gt of GEOM_TYPES) {\n const index = data[gt] && findIndexByType(data[gt], uniqueIdProperty, featureId, layerName);\n if (index >= 0) {\n return index;\n }\n }\n\n return -1;\n}\n\nfunction findIndexByType(geomData, uniqueIdProperty, featureId, layerName) {\n const featureIds = geomData.featureIds.value;\n\n if (!featureIds.length) {\n return -1;\n }\n\n let startFeatureIndex = 0;\n let endFeatureIndex = featureIds[featureIds.length - 1] + 1;\n if (layerName) {\n const layerRange = getLayerRange(geomData, layerName);\n if (layerRange) {\n startFeatureIndex = layerRange[0];\n endFeatureIndex = layerRange[1] + 1;\n } else {\n return -1;\n }\n }\n\n // Look for the uniqueIdProperty\n let featureIndex = -1;\n if (uniqueIdProperty in geomData.numericProps) {\n const vertexIndex = geomData.numericProps[uniqueIdProperty].value.findIndex(\n (x, i) =>\n x === featureId && featureIds[i] >= startFeatureIndex && featureIds[i] < endFeatureIndex\n );\n return vertexIndex >= 0 ? geomData.globalFeatureIds.value[vertexIndex] : -1;\n } else if (uniqueIdProperty) {\n featureIndex = findIndex(\n geomData.properties,\n elem => elem[uniqueIdProperty] === featureId,\n startFeatureIndex,\n endFeatureIndex\n );\n } else {\n featureIndex = findIndex(\n geomData.fields,\n elem => elem.id === featureId,\n startFeatureIndex,\n endFeatureIndex\n );\n }\n return featureIndex >= 0 ? getGlobalFeatureId(geomData, featureIndex) : -1;\n}\n\n// Returns [firstFeatureIndex, lastFeatureIndex]\n// MVTLoader parses tiles layer-by-layer, so each layer is a continuous range\nfunction getLayerRange(geomData, layerName) {\n if (!geomData.__layers) {\n // Cache a map from properties.layerName to index ranges\n const layerNames = {};\n const {properties} = geomData;\n for (let i = 0; i < properties.length; i++) {\n const {layerName: key} = properties[i];\n if (!key) {\n // ignore\n } else if (layerNames[key]) {\n layerNames[key][1] = i;\n } else {\n layerNames[key] = [i, i];\n }\n }\n geomData.__layers = layerNames;\n }\n return geomData.__layers[layerName];\n}\n\n// Returns global feature id\nfunction getGlobalFeatureId(geomData, featureIndex) {\n if (!geomData.__ids) {\n // Cache a map from featureId to globalFeatureId\n const result = [];\n const featureIds = geomData.featureIds.value;\n const globalFeatureIds = geomData.globalFeatureIds.value;\n for (let i = 0; i < featureIds.length; i++) {\n result[featureIds[i]] = globalFeatureIds[i];\n }\n geomData.__ids = result;\n }\n return geomData.__ids[featureIndex];\n}\n\n// Like array.findIndex, but only search within a range\nfunction findIndex(array, predicate, startIndex, endIndex) {\n for (let i = startIndex; i < endIndex; i++) {\n if (predicate(array[i], i)) {\n return i;\n }\n }\n return -1;\n}\n"],"file":"find-index-binary.js"}
|