@deck.gl/geo-layers 8.6.2 → 8.6.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.
Files changed (40) hide show
  1. package/dist/dist.dev.js +1449 -1449
  2. package/dist/es5/great-circle-layer/great-circle-layer.js +1 -26
  3. package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
  4. package/dist/es5/h3-layers/h3-cluster-layer.js +87 -149
  5. package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
  6. package/dist/es5/h3-layers/h3-hexagon-layer.js +226 -321
  7. package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
  8. package/dist/es5/index.js +9 -9
  9. package/dist/es5/mesh-layer/mesh-layer.js +125 -151
  10. package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
  11. package/dist/es5/mvt-layer/coordinate-transform.js +19 -45
  12. package/dist/es5/mvt-layer/coordinate-transform.js.map +1 -1
  13. package/dist/es5/mvt-layer/find-index-binary.js +26 -45
  14. package/dist/es5/mvt-layer/find-index-binary.js.map +1 -1
  15. package/dist/es5/mvt-layer/mvt-layer.js +282 -374
  16. package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
  17. package/dist/es5/s2-layer/s2-geometry.js +32 -43
  18. package/dist/es5/s2-layer/s2-geometry.js.map +1 -1
  19. package/dist/es5/s2-layer/s2-layer.js +69 -104
  20. package/dist/es5/s2-layer/s2-layer.js.map +1 -1
  21. package/dist/es5/s2-layer/s2-utils.js +28 -27
  22. package/dist/es5/s2-layer/s2-utils.js.map +1 -1
  23. package/dist/es5/terrain-layer/terrain-layer.js +208 -254
  24. package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
  25. package/dist/es5/tile-3d-layer/tile-3d-layer.js +329 -382
  26. package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
  27. package/dist/es5/tile-layer/tile-2d-header.js +119 -183
  28. package/dist/es5/tile-layer/tile-2d-header.js.map +1 -1
  29. package/dist/es5/tile-layer/tile-2d-traversal.js +115 -178
  30. package/dist/es5/tile-layer/tile-2d-traversal.js.map +1 -1
  31. package/dist/es5/tile-layer/tile-layer.js +214 -258
  32. package/dist/es5/tile-layer/tile-layer.js.map +1 -1
  33. package/dist/es5/tile-layer/tileset-2d.js +290 -435
  34. package/dist/es5/tile-layer/tileset-2d.js.map +1 -1
  35. package/dist/es5/tile-layer/utils.js +61 -110
  36. package/dist/es5/tile-layer/utils.js.map +1 -1
  37. package/dist/es5/trips-layer/trips-layer.js +44 -81
  38. package/dist/es5/trips-layer/trips-layer.js.map +1 -1
  39. package/dist.min.js +1 -1
  40. package/package.json +2 -2
@@ -1 +1 @@
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';\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"}
1
+ {"version":3,"sources":["../../../src/mvt-layer/coordinate-transform.js"],"names":["availableTransformations","Point","MultiPoint","LineString","MultiLineString","Polygon","MultiPolygon","pointX","pointY","nw","se","viewport","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":";;;;;;;AAAA;;AAEA,MAAMA,wBAAwB,GAAG;AAC/BC,EAAAA,KAD+B;AAE/BC,EAAAA,UAF+B;AAG/BC,EAAAA,UAH+B;AAI/BC,EAAAA,eAJ+B;AAK/BC,EAAAA,OAL+B;AAM/BC,EAAAA;AAN+B,CAAjC;;AASA,SAASL,KAAT,CAAe,CAACM,MAAD,EAASC,MAAT,CAAf,EAAiC,CAACC,EAAD,EAAKC,EAAL,CAAjC,EAA2CC,QAA3C,EAAqD;AACnD,QAAMC,CAAC,GAAG,gBAAKH,EAAE,CAAC,CAAD,CAAP,EAAYC,EAAE,CAAC,CAAD,CAAd,EAAmBH,MAAnB,CAAV;AACA,QAAMM,CAAC,GAAG,gBAAKJ,EAAE,CAAC,CAAD,CAAP,EAAYC,EAAE,CAAC,CAAD,CAAd,EAAmBF,MAAnB,CAAV;AAEA,SAAOG,QAAQ,CAACG,aAAT,CAAuB,CAACF,CAAD,EAAIC,CAAJ,CAAvB,CAAP;AACD;;AAED,SAASE,SAAT,CAAmBC,QAAnB,EAA6BC,IAA7B,EAAmCN,QAAnC,EAA6C;AAC3C,SAAOK,QAAQ,CAACE,GAAT,CAAaC,CAAC,IAAIlB,KAAK,CAACkB,CAAD,EAAIF,IAAJ,EAAUN,QAAV,CAAvB,CAAP;AACD;;AAED,SAAST,UAAT,CAAoBkB,UAApB,EAAgCH,IAAhC,EAAsCN,QAAtC,EAAgD;AAC9C,SAAOI,SAAS,CAACK,UAAD,EAAaH,IAAb,EAAmBN,QAAnB,CAAhB;AACD;;AAED,SAASR,UAAT,CAAoBkB,IAApB,EAA0BJ,IAA1B,EAAgCN,QAAhC,EAA0C;AACxC,SAAOI,SAAS,CAACM,IAAD,EAAOJ,IAAP,EAAaN,QAAb,CAAhB;AACD;;AAED,SAASP,eAAT,CAAyBkB,eAAzB,EAA0CL,IAA1C,EAAgDN,QAAhD,EAA0D;AACxD,SAAOW,eAAe,CAACJ,GAAhB,CAAoBK,UAAU,IAAIpB,UAAU,CAACoB,UAAD,EAAaN,IAAb,EAAmBN,QAAnB,CAA5C,CAAP;AACD;;AAED,SAASN,OAAT,CAAiBmB,OAAjB,EAA0BP,IAA1B,EAAgCN,QAAhC,EAA0C;AACxC,SAAOa,OAAO,CAACN,GAAR,CAAYO,WAAW,IAAIV,SAAS,CAACU,WAAD,EAAcR,IAAd,EAAoBN,QAApB,CAApC,CAAP;AACD;;AAED,SAASL,YAAT,CAAsBoB,YAAtB,EAAoCT,IAApC,EAA0CN,QAA1C,EAAoD;AAClD,SAAOe,YAAY,CAACR,GAAb,CAAiBM,OAAO,IAAInB,OAAO,CAACmB,OAAD,EAAUP,IAAV,EAAgBN,QAAhB,CAAnC,CAAP;AACD;;AAEM,SAASgB,SAAT,CAAmBX,QAAnB,EAA6BC,IAA7B,EAAmCN,QAAnC,EAA6C;AAClD,QAAMF,EAAE,GAAGE,QAAQ,CAACiB,WAAT,CAAqB,CAACX,IAAI,CAACY,IAAN,EAAYZ,IAAI,CAACa,KAAjB,CAArB,CAAX;AACA,QAAMpB,EAAE,GAAGC,QAAQ,CAACiB,WAAT,CAAqB,CAACX,IAAI,CAACc,IAAN,EAAYd,IAAI,CAACe,KAAjB,CAArB,CAAX;AACA,QAAMC,aAAa,GAAG,CAACxB,EAAD,EAAKC,EAAL,CAAtB;AAEA,SAAO,EACL,GAAGM,QADE;AAELkB,IAAAA,WAAW,EAAElC,wBAAwB,CAACgB,QAAQ,CAACmB,IAAV,CAAxB,CACXnB,QAAQ,CAACkB,WADE,EAEXD,aAFW,EAGXtB,QAHW;AAFR,GAAP;AAQD","sourcesContent":["import {lerp} from 'math.gl';\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,49 +4,32 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = findIndexBinary;
7
-
8
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { 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 = o[Symbol.iterator](); }, 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'];
7
+ const GEOM_TYPES = ['points', 'lines', 'polygons'];
15
8
 
16
9
  function findIndexBinary(data, uniqueIdProperty, featureId, layerName) {
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);
10
+ for (const gt of GEOM_TYPES) {
11
+ const index = data[gt] && findIndexByType(data[gt], uniqueIdProperty, featureId, layerName);
24
12
 
25
- if (index >= 0) {
26
- return index;
27
- }
13
+ if (index >= 0) {
14
+ return index;
28
15
  }
29
- } catch (err) {
30
- _iterator.e(err);
31
- } finally {
32
- _iterator.f();
33
16
  }
34
17
 
35
18
  return -1;
36
19
  }
37
20
 
38
21
  function findIndexByType(geomData, uniqueIdProperty, featureId, layerName) {
39
- var featureIds = geomData.featureIds.value;
22
+ const featureIds = geomData.featureIds.value;
40
23
 
41
24
  if (!featureIds.length) {
42
25
  return -1;
43
26
  }
44
27
 
45
- var startFeatureIndex = 0;
46
- var endFeatureIndex = featureIds[featureIds.length - 1] + 1;
28
+ let startFeatureIndex = 0;
29
+ let endFeatureIndex = featureIds[featureIds.length - 1] + 1;
47
30
 
48
31
  if (layerName) {
49
- var layerRange = getLayerRange(geomData, layerName);
32
+ const layerRange = getLayerRange(geomData, layerName);
50
33
 
51
34
  if (layerRange) {
52
35
  startFeatureIndex = layerRange[0];
@@ -56,21 +39,15 @@ function findIndexByType(geomData, uniqueIdProperty, featureId, layerName) {
56
39
  }
57
40
  }
58
41
 
59
- var featureIndex = -1;
42
+ let featureIndex = -1;
60
43
 
61
44
  if (uniqueIdProperty in geomData.numericProps) {
62
- var vertexIndex = geomData.numericProps[uniqueIdProperty].value.findIndex(function (x, i) {
63
- return x === featureId && featureIds[i] >= startFeatureIndex && featureIds[i] < endFeatureIndex;
64
- });
45
+ const vertexIndex = geomData.numericProps[uniqueIdProperty].value.findIndex((x, i) => x === featureId && featureIds[i] >= startFeatureIndex && featureIds[i] < endFeatureIndex);
65
46
  return vertexIndex >= 0 ? geomData.globalFeatureIds.value[vertexIndex] : -1;
66
47
  } else if (uniqueIdProperty) {
67
- featureIndex = findIndex(geomData.properties, function (elem) {
68
- return elem[uniqueIdProperty] === featureId;
69
- }, startFeatureIndex, endFeatureIndex);
48
+ featureIndex = findIndex(geomData.properties, elem => elem[uniqueIdProperty] === featureId, startFeatureIndex, endFeatureIndex);
70
49
  } else {
71
- featureIndex = findIndex(geomData.fields, function (elem) {
72
- return elem.id === featureId;
73
- }, startFeatureIndex, endFeatureIndex);
50
+ featureIndex = findIndex(geomData.fields, elem => elem.id === featureId, startFeatureIndex, endFeatureIndex);
74
51
  }
75
52
 
76
53
  return featureIndex >= 0 ? getGlobalFeatureId(geomData, featureIndex) : -1;
@@ -78,11 +55,15 @@ function findIndexByType(geomData, uniqueIdProperty, featureId, layerName) {
78
55
 
79
56
  function getLayerRange(geomData, layerName) {
80
57
  if (!geomData.__layers) {
81
- var layerNames = {};
82
- var properties = geomData.properties;
58
+ const layerNames = {};
59
+ const {
60
+ properties
61
+ } = geomData;
83
62
 
84
- for (var i = 0; i < properties.length; i++) {
85
- var key = properties[i].layerName;
63
+ for (let i = 0; i < properties.length; i++) {
64
+ const {
65
+ layerName: key
66
+ } = properties[i];
86
67
 
87
68
  if (!key) {} else if (layerNames[key]) {
88
69
  layerNames[key][1] = i;
@@ -99,11 +80,11 @@ function getLayerRange(geomData, layerName) {
99
80
 
100
81
  function getGlobalFeatureId(geomData, featureIndex) {
101
82
  if (!geomData.__ids) {
102
- var result = [];
103
- var featureIds = geomData.featureIds.value;
104
- var globalFeatureIds = geomData.globalFeatureIds.value;
83
+ const result = [];
84
+ const featureIds = geomData.featureIds.value;
85
+ const globalFeatureIds = geomData.globalFeatureIds.value;
105
86
 
106
- for (var i = 0; i < featureIds.length; i++) {
87
+ for (let i = 0; i < featureIds.length; i++) {
107
88
  result[featureIds[i]] = globalFeatureIds[i];
108
89
  }
109
90
 
@@ -114,7 +95,7 @@ function getGlobalFeatureId(geomData, featureIndex) {
114
95
  }
115
96
 
116
97
  function findIndex(array, predicate, startIndex, endIndex) {
117
- for (var i = startIndex; i < endIndex; i++) {
98
+ for (let i = startIndex; i < endIndex; i++) {
118
99
  if (predicate(array[i], i)) {
119
100
  return i;
120
101
  }
@@ -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":"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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"}
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"}