@deck.gl/geo-layers 8.6.2 → 8.6.6

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 (69) hide show
  1. package/dist/dist.dev.js +7810 -4699
  2. package/dist/es5/great-circle-layer/great-circle-layer.js +4 -2
  3. package/dist/es5/great-circle-layer/great-circle-layer.js.map +1 -1
  4. package/dist/es5/h3-layers/h3-cluster-layer.js +4 -4
  5. package/dist/es5/h3-layers/h3-cluster-layer.js.map +1 -1
  6. package/dist/es5/h3-layers/h3-hexagon-layer.js +5 -5
  7. package/dist/es5/h3-layers/h3-hexagon-layer.js.map +1 -1
  8. package/dist/es5/index.js +14 -14
  9. package/dist/es5/mesh-layer/mesh-layer.js +3 -3
  10. package/dist/es5/mesh-layer/mesh-layer.js.map +1 -1
  11. package/dist/es5/mvt-layer/coordinate-transform.js +2 -2
  12. package/dist/es5/mvt-layer/find-index-binary.js +1 -1
  13. package/dist/es5/mvt-layer/find-index-binary.js.map +1 -1
  14. package/dist/es5/mvt-layer/mvt-layer.js +34 -11
  15. package/dist/es5/mvt-layer/mvt-layer.js.map +1 -1
  16. package/dist/es5/s2-layer/s2-geometry.js +2 -2
  17. package/dist/es5/s2-layer/s2-layer.js +3 -3
  18. package/dist/es5/s2-layer/s2-layer.js.map +1 -1
  19. package/dist/es5/s2-layer/s2-utils.js +1 -1
  20. package/dist/es5/terrain-layer/terrain-layer.js +8 -12
  21. package/dist/es5/terrain-layer/terrain-layer.js.map +1 -1
  22. package/dist/es5/tile-3d-layer/tile-3d-layer.js +9 -9
  23. package/dist/es5/tile-3d-layer/tile-3d-layer.js.map +1 -1
  24. package/dist/es5/tile-layer/tile-2d-header.js +35 -35
  25. package/dist/es5/tile-layer/tile-2d-header.js.map +1 -1
  26. package/dist/es5/tile-layer/tile-2d-traversal.js +13 -13
  27. package/dist/es5/tile-layer/tile-2d-traversal.js.map +1 -1
  28. package/dist/es5/tile-layer/tile-layer.js +30 -27
  29. package/dist/es5/tile-layer/tile-layer.js.map +1 -1
  30. package/dist/es5/tile-layer/tileset-2d.js +19 -19
  31. package/dist/es5/tile-layer/tileset-2d.js.map +1 -1
  32. package/dist/es5/tile-layer/utils.js +3 -3
  33. package/dist/es5/tile-layer/utils.js.map +1 -1
  34. package/dist/es5/trips-layer/trips-layer.js +3 -3
  35. package/dist/es5/trips-layer/trips-layer.js.map +1 -1
  36. package/dist/esm/h3-layers/h3-cluster-layer.js +7 -5
  37. package/dist/esm/h3-layers/h3-cluster-layer.js.map +1 -1
  38. package/dist/esm/h3-layers/h3-hexagon-layer.js +14 -9
  39. package/dist/esm/h3-layers/h3-hexagon-layer.js.map +1 -1
  40. package/dist/esm/mesh-layer/mesh-layer.js +6 -5
  41. package/dist/esm/mesh-layer/mesh-layer.js.map +1 -1
  42. package/dist/esm/mvt-layer/coordinate-transform.js +3 -1
  43. package/dist/esm/mvt-layer/coordinate-transform.js.map +1 -1
  44. package/dist/esm/mvt-layer/mvt-layer.js +37 -7
  45. package/dist/esm/mvt-layer/mvt-layer.js.map +1 -1
  46. package/dist/esm/s2-layer/s2-geometry.js +5 -2
  47. package/dist/esm/s2-layer/s2-geometry.js.map +1 -1
  48. package/dist/esm/s2-layer/s2-utils.js +6 -5
  49. package/dist/esm/s2-layer/s2-utils.js.map +1 -1
  50. package/dist/esm/terrain-layer/terrain-layer.js +22 -21
  51. package/dist/esm/terrain-layer/terrain-layer.js.map +1 -1
  52. package/dist/esm/tile-3d-layer/tile-3d-layer.js +21 -16
  53. package/dist/esm/tile-3d-layer/tile-3d-layer.js.map +1 -1
  54. package/dist/esm/tile-layer/tile-2d-header.js +13 -11
  55. package/dist/esm/tile-layer/tile-2d-header.js.map +1 -1
  56. package/dist/esm/tile-layer/tile-2d-traversal.js +12 -6
  57. package/dist/esm/tile-layer/tile-2d-traversal.js.map +1 -1
  58. package/dist/esm/tile-layer/tile-layer.js +24 -22
  59. package/dist/esm/tile-layer/tile-layer.js.map +1 -1
  60. package/dist/esm/tile-layer/tileset-2d.js +26 -22
  61. package/dist/esm/tile-layer/tileset-2d.js.map +1 -1
  62. package/dist/esm/tile-layer/utils.js +16 -13
  63. package/dist/esm/tile-layer/utils.js.map +1 -1
  64. package/dist.min.js +2 -2
  65. package/package.json +11 -11
  66. package/src/mvt-layer/mvt-layer.js +16 -0
  67. package/src/terrain-layer/terrain-layer.js +10 -9
  68. package/src/tile-layer/tile-layer.js +9 -6
  69. package/src/tile-layer/utils.js +4 -4
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/tile-layer/utils.js"],"names":["getOSMTileIndices","TILE_SIZE","DEFAULT_EXTENT","Infinity","urlType","type","value","validate","propType","optional","Array","isArray","every","url","equals","value1","value2","len","length","i","transformBox","bbox","modelMatrix","transformedCoords","transformPoint","transformedBox","Math","min","map","max","getURLFromTemplate","template","properties","index","abs","x","y","z","replace","pow","getBoundingBox","viewport","zRange","extent","bounds","minZ","maxZ","bounds0","getBounds","bounds1","isGeospatial","getIndexingCoords","scale","modelMatrixInverse","transformedTileIndex","getScale","tileSize","osmTile2lngLat","lng","n","PI","lat","atan","exp","tile2XY","tileToBoundingBox","west","north","east","south","left","top","right","bottom","getIdentityTileIndices","minX","minY","maxX","maxY","indices","floor","push","getTileIndices","maxZoom","minZoom","zoomOffset","round","zoom","log2","ceil","Number","isFinite","transformedExtent","isURLTemplate","s","test"],"mappings":"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","sourcesContent":["import {getOSMTileIndices} from './tile-2d-traversal';\n\nconst TILE_SIZE = 512;\nconst DEFAULT_EXTENT = [-Infinity, -Infinity, Infinity, Infinity];\n\nexport const urlType = {\n type: 'url',\n value: null,\n validate: (value, propType) =>\n (propType.optional && value === null) ||\n typeof value === 'string' ||\n (Array.isArray(value) && value.every(url => typeof url === 'string')),\n equals: (value1, value2) => {\n if (value1 === value2) {\n return true;\n }\n if (!Array.isArray(value1) || !Array.isArray(value2)) {\n return false;\n }\n const len = value1.length;\n if (len !== value2.length) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (value1[i] !== value2[i]) {\n return false;\n }\n }\n return true;\n }\n};\n\nfunction transformBox(bbox, modelMatrix) {\n const transformedCoords = [\n // top-left\n modelMatrix.transformPoint([bbox[0], bbox[1]]),\n // top-right\n modelMatrix.transformPoint([bbox[2], bbox[1]]),\n // bottom-left\n modelMatrix.transformPoint([bbox[0], bbox[3]]),\n // bottom-right\n modelMatrix.transformPoint([bbox[2], bbox[3]])\n ];\n const transformedBox = [\n // Minimum x coord\n Math.min(...transformedCoords.map(i => i[0])),\n // Minimum y coord\n Math.min(...transformedCoords.map(i => i[1])),\n // Max x coord\n Math.max(...transformedCoords.map(i => i[0])),\n // Max y coord\n Math.max(...transformedCoords.map(i => i[1]))\n ];\n return transformedBox;\n}\n\nexport function getURLFromTemplate(template, properties) {\n if (!template || !template.length) {\n return null;\n }\n if (Array.isArray(template)) {\n const index = Math.abs(properties.x + properties.y) % template.length;\n template = template[index];\n }\n\n const {x, y, z} = properties;\n return template\n .replace('{x}', x)\n .replace('{y}', y)\n .replace('{z}', z)\n .replace('{-y}', Math.pow(2, z) - y - 1);\n}\n\n/**\n * gets the bounding box of a viewport\n */\nfunction getBoundingBox(viewport, zRange, extent) {\n let bounds;\n if (zRange && zRange.length === 2) {\n const [minZ, maxZ] = zRange;\n const bounds0 = viewport.getBounds({z: minZ});\n const bounds1 = viewport.getBounds({z: maxZ});\n bounds = [\n Math.min(bounds0[0], bounds1[0]),\n Math.min(bounds0[1], bounds1[1]),\n Math.max(bounds0[2], bounds1[2]),\n Math.max(bounds0[3], bounds1[3])\n ];\n } else {\n bounds = viewport.getBounds();\n }\n if (!viewport.isGeospatial) {\n return [\n // Top corner should not be more then bottom corner in either direction\n Math.max(Math.min(bounds[0], extent[2]), extent[0]),\n Math.max(Math.min(bounds[1], extent[3]), extent[1]),\n // Bottom corner should not be less then top corner in either direction\n Math.min(Math.max(bounds[2], extent[0]), extent[2]),\n Math.min(Math.max(bounds[3], extent[1]), extent[3])\n ];\n }\n return [\n Math.max(bounds[0], extent[0]),\n Math.max(bounds[1], extent[1]),\n Math.min(bounds[2], extent[2]),\n Math.min(bounds[3], extent[3])\n ];\n}\n\nfunction getIndexingCoords(bbox, scale, modelMatrixInverse) {\n if (modelMatrixInverse) {\n const transformedTileIndex = transformBox(bbox, modelMatrixInverse).map(\n i => (i * scale) / TILE_SIZE\n );\n return transformedTileIndex;\n }\n return bbox.map(i => (i * scale) / TILE_SIZE);\n}\n\nfunction getScale(z, tileSize) {\n return (Math.pow(2, z) * TILE_SIZE) / tileSize;\n}\n\n// https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Lon..2Flat._to_tile_numbers_2\nexport function osmTile2lngLat(x, y, z) {\n const scale = getScale(z, TILE_SIZE);\n const lng = (x / scale) * 360 - 180;\n const n = Math.PI - (2 * Math.PI * y) / scale;\n const lat = (180 / Math.PI) * Math.atan(0.5 * (Math.exp(n) - Math.exp(-n)));\n return [lng, lat];\n}\n\nfunction tile2XY(x, y, z, tileSize) {\n const scale = getScale(z, tileSize);\n return [(x / scale) * TILE_SIZE, (y / scale) * TILE_SIZE];\n}\nexport function tileToBoundingBox(viewport, x, y, z, tileSize = TILE_SIZE) {\n if (viewport.isGeospatial) {\n const [west, north] = osmTile2lngLat(x, y, z);\n const [east, south] = osmTile2lngLat(x + 1, y + 1, z);\n return {west, north, east, south};\n }\n const [left, top] = tile2XY(x, y, z, tileSize);\n const [right, bottom] = tile2XY(x + 1, y + 1, z, tileSize);\n return {left, top, right, bottom};\n}\n\nfunction getIdentityTileIndices(viewport, z, tileSize, extent, modelMatrixInverse) {\n const bbox = getBoundingBox(viewport, null, extent);\n const scale = getScale(z, tileSize);\n const [minX, minY, maxX, maxY] = getIndexingCoords(bbox, scale, modelMatrixInverse);\n const indices = [];\n\n /*\n | TILE | TILE | TILE |\n |(minX) |(maxX)\n */\n for (let x = Math.floor(minX); x < maxX; x++) {\n for (let y = Math.floor(minY); y < maxY; y++) {\n indices.push({x, y, z});\n }\n }\n return indices;\n}\n\n/**\n * Returns all tile indices in the current viewport. If the current zoom level is smaller\n * than minZoom, return an empty array. If the current zoom level is greater than maxZoom,\n * return tiles that are on maxZoom.\n */\n// eslint-disable-next-line complexity\nexport function getTileIndices({\n viewport,\n maxZoom,\n minZoom,\n zRange,\n extent,\n tileSize = TILE_SIZE,\n modelMatrix,\n modelMatrixInverse,\n zoomOffset = 0\n}) {\n let z = viewport.isGeospatial\n ? Math.round(viewport.zoom + Math.log2(TILE_SIZE / tileSize)) + zoomOffset\n : Math.ceil(viewport.zoom) + zoomOffset;\n if (Number.isFinite(minZoom) && z < minZoom) {\n if (!extent) {\n return [];\n }\n z = minZoom;\n }\n if (Number.isFinite(maxZoom) && z > maxZoom) {\n z = maxZoom;\n }\n let transformedExtent = extent;\n if (modelMatrix && modelMatrixInverse && extent && !viewport.isGeospatial) {\n transformedExtent = transformBox(extent, modelMatrix);\n }\n return viewport.isGeospatial\n ? getOSMTileIndices(viewport, z, zRange, extent)\n : getIdentityTileIndices(\n viewport,\n z,\n tileSize,\n transformedExtent || DEFAULT_EXTENT,\n modelMatrixInverse\n );\n}\n\n/**\n * Returns true if s is a valid URL template\n */\nexport function isURLTemplate(s) {\n return /(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(s);\n}\n"],"file":"utils.js"}
1
+ {"version":3,"sources":["../../../src/tile-layer/utils.js"],"names":["getOSMTileIndices","TILE_SIZE","DEFAULT_EXTENT","Infinity","urlType","type","value","validate","propType","optional","Array","isArray","every","url","equals","value1","value2","len","length","i","transformBox","bbox","modelMatrix","transformedCoords","transformPoint","transformedBox","Math","min","map","max","getURLFromTemplate","template","properties","index","abs","x","y","z","replace","pow","getBoundingBox","viewport","zRange","extent","bounds","minZ","maxZ","bounds0","getBounds","bounds1","isGeospatial","getIndexingCoords","scale","modelMatrixInverse","transformedTileIndex","getScale","tileSize","osmTile2lngLat","lng","n","PI","lat","atan","exp","tile2XY","tileToBoundingBox","west","north","east","south","left","top","right","bottom","getIdentityTileIndices","minX","minY","maxX","maxY","indices","floor","push","getTileIndices","maxZoom","minZoom","zoomOffset","round","zoom","log2","ceil","Number","isFinite","transformedExtent","isURLTemplate","s","test"],"mappings":"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","sourcesContent":["import {getOSMTileIndices} from './tile-2d-traversal';\n\nconst TILE_SIZE = 512;\nconst DEFAULT_EXTENT = [-Infinity, -Infinity, Infinity, Infinity];\n\nexport const urlType = {\n type: 'url',\n value: null,\n validate: (value, propType) =>\n (propType.optional && value === null) ||\n typeof value === 'string' ||\n (Array.isArray(value) && value.every(url => typeof url === 'string')),\n equals: (value1, value2) => {\n if (value1 === value2) {\n return true;\n }\n if (!Array.isArray(value1) || !Array.isArray(value2)) {\n return false;\n }\n const len = value1.length;\n if (len !== value2.length) {\n return false;\n }\n for (let i = 0; i < len; i++) {\n if (value1[i] !== value2[i]) {\n return false;\n }\n }\n return true;\n }\n};\n\nfunction transformBox(bbox, modelMatrix) {\n const transformedCoords = [\n // top-left\n modelMatrix.transformPoint([bbox[0], bbox[1]]),\n // top-right\n modelMatrix.transformPoint([bbox[2], bbox[1]]),\n // bottom-left\n modelMatrix.transformPoint([bbox[0], bbox[3]]),\n // bottom-right\n modelMatrix.transformPoint([bbox[2], bbox[3]])\n ];\n const transformedBox = [\n // Minimum x coord\n Math.min(...transformedCoords.map(i => i[0])),\n // Minimum y coord\n Math.min(...transformedCoords.map(i => i[1])),\n // Max x coord\n Math.max(...transformedCoords.map(i => i[0])),\n // Max y coord\n Math.max(...transformedCoords.map(i => i[1]))\n ];\n return transformedBox;\n}\n\nexport function getURLFromTemplate(template, properties) {\n if (!template || !template.length) {\n return null;\n }\n if (Array.isArray(template)) {\n const index = Math.abs(properties.x + properties.y) % template.length;\n template = template[index];\n }\n\n const {x, y, z} = properties;\n return template\n .replace(/\\{x\\}/g, x)\n .replace(/\\{y\\}/g, y)\n .replace(/\\{z\\}/g, z)\n .replace(/\\{-y\\}/g, Math.pow(2, z) - y - 1);\n}\n\n/**\n * gets the bounding box of a viewport\n */\nfunction getBoundingBox(viewport, zRange, extent) {\n let bounds;\n if (zRange && zRange.length === 2) {\n const [minZ, maxZ] = zRange;\n const bounds0 = viewport.getBounds({z: minZ});\n const bounds1 = viewport.getBounds({z: maxZ});\n bounds = [\n Math.min(bounds0[0], bounds1[0]),\n Math.min(bounds0[1], bounds1[1]),\n Math.max(bounds0[2], bounds1[2]),\n Math.max(bounds0[3], bounds1[3])\n ];\n } else {\n bounds = viewport.getBounds();\n }\n if (!viewport.isGeospatial) {\n return [\n // Top corner should not be more then bottom corner in either direction\n Math.max(Math.min(bounds[0], extent[2]), extent[0]),\n Math.max(Math.min(bounds[1], extent[3]), extent[1]),\n // Bottom corner should not be less then top corner in either direction\n Math.min(Math.max(bounds[2], extent[0]), extent[2]),\n Math.min(Math.max(bounds[3], extent[1]), extent[3])\n ];\n }\n return [\n Math.max(bounds[0], extent[0]),\n Math.max(bounds[1], extent[1]),\n Math.min(bounds[2], extent[2]),\n Math.min(bounds[3], extent[3])\n ];\n}\n\nfunction getIndexingCoords(bbox, scale, modelMatrixInverse) {\n if (modelMatrixInverse) {\n const transformedTileIndex = transformBox(bbox, modelMatrixInverse).map(\n i => (i * scale) / TILE_SIZE\n );\n return transformedTileIndex;\n }\n return bbox.map(i => (i * scale) / TILE_SIZE);\n}\n\nfunction getScale(z, tileSize) {\n return (Math.pow(2, z) * TILE_SIZE) / tileSize;\n}\n\n// https://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Lon..2Flat._to_tile_numbers_2\nexport function osmTile2lngLat(x, y, z) {\n const scale = getScale(z, TILE_SIZE);\n const lng = (x / scale) * 360 - 180;\n const n = Math.PI - (2 * Math.PI * y) / scale;\n const lat = (180 / Math.PI) * Math.atan(0.5 * (Math.exp(n) - Math.exp(-n)));\n return [lng, lat];\n}\n\nfunction tile2XY(x, y, z, tileSize) {\n const scale = getScale(z, tileSize);\n return [(x / scale) * TILE_SIZE, (y / scale) * TILE_SIZE];\n}\nexport function tileToBoundingBox(viewport, x, y, z, tileSize = TILE_SIZE) {\n if (viewport.isGeospatial) {\n const [west, north] = osmTile2lngLat(x, y, z);\n const [east, south] = osmTile2lngLat(x + 1, y + 1, z);\n return {west, north, east, south};\n }\n const [left, top] = tile2XY(x, y, z, tileSize);\n const [right, bottom] = tile2XY(x + 1, y + 1, z, tileSize);\n return {left, top, right, bottom};\n}\n\nfunction getIdentityTileIndices(viewport, z, tileSize, extent, modelMatrixInverse) {\n const bbox = getBoundingBox(viewport, null, extent);\n const scale = getScale(z, tileSize);\n const [minX, minY, maxX, maxY] = getIndexingCoords(bbox, scale, modelMatrixInverse);\n const indices = [];\n\n /*\n | TILE | TILE | TILE |\n |(minX) |(maxX)\n */\n for (let x = Math.floor(minX); x < maxX; x++) {\n for (let y = Math.floor(minY); y < maxY; y++) {\n indices.push({x, y, z});\n }\n }\n return indices;\n}\n\n/**\n * Returns all tile indices in the current viewport. If the current zoom level is smaller\n * than minZoom, return an empty array. If the current zoom level is greater than maxZoom,\n * return tiles that are on maxZoom.\n */\n// eslint-disable-next-line complexity\nexport function getTileIndices({\n viewport,\n maxZoom,\n minZoom,\n zRange,\n extent,\n tileSize = TILE_SIZE,\n modelMatrix,\n modelMatrixInverse,\n zoomOffset = 0\n}) {\n let z = viewport.isGeospatial\n ? Math.round(viewport.zoom + Math.log2(TILE_SIZE / tileSize)) + zoomOffset\n : Math.ceil(viewport.zoom) + zoomOffset;\n if (Number.isFinite(minZoom) && z < minZoom) {\n if (!extent) {\n return [];\n }\n z = minZoom;\n }\n if (Number.isFinite(maxZoom) && z > maxZoom) {\n z = maxZoom;\n }\n let transformedExtent = extent;\n if (modelMatrix && modelMatrixInverse && extent && !viewport.isGeospatial) {\n transformedExtent = transformBox(extent, modelMatrix);\n }\n return viewport.isGeospatial\n ? getOSMTileIndices(viewport, z, zRange, extent)\n : getIdentityTileIndices(\n viewport,\n z,\n tileSize,\n transformedExtent || DEFAULT_EXTENT,\n modelMatrixInverse\n );\n}\n\n/**\n * Returns true if s is a valid URL template\n */\nexport function isURLTemplate(s) {\n return /(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(s);\n}\n"],"file":"utils.js"}