leaflet-city-mapper 0.1.0 → 0.1.1

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 (515) hide show
  1. package/README.md +1 -1
  2. package/dist/leaflet-city-mapper-src.js.map +1 -1
  3. package/dist/leaflet-city-mapper-worker-src.js.map +1 -1
  4. package/dist/leaflet-city-mapper-worker.js.map +1 -1
  5. package/dist/leaflet-city-mapper.js.map +1 -1
  6. package/libs/leaflet-lens.js +151 -151
  7. package/libs/leaflet.js +3 -3
  8. package/libs/openlayers-bindings.js +1129 -1129
  9. package/libs/openlayers-bindings.min.js.map +1 -1
  10. package/package.json +2 -4
  11. package/src/animations/cancelCameraAnimation.js +19 -19
  12. package/src/animations/mapStopPitchBearingAnimation.js +10 -10
  13. package/src/animations/scheduleCameraAnimation.js +15 -15
  14. package/src/animations/scheduleMarkerPan.js +14 -14
  15. package/src/animations/updateZoomCamera.js +25 -25
  16. package/src/archives/findDirectoryEntry.js +17 -17
  17. package/src/archives/findTile.js +45 -45
  18. package/src/archives/getDirectoryEntries.js +30 -30
  19. package/src/archives/getTileData.js +26 -26
  20. package/src/archives/readArchiveRange.js +48 -48
  21. package/src/astronomy/solarTime.js +21 -21
  22. package/src/camera/cameraMapReady.js +9 -9
  23. package/src/camera/cleanupCameraMap.js +13 -13
  24. package/src/camera/constrainCameraToBounds.js +3 -3
  25. package/src/camera/createSceneCamera.js +25 -25
  26. package/src/camera/getBearing.js +10 -10
  27. package/src/camera/getPitch.js +10 -10
  28. package/src/camera/mapGetBoundsCenterZoom.js +14 -14
  29. package/src/camera/mapLimitOffset.js +17 -17
  30. package/src/camera/mapPanBy.js +14 -14
  31. package/src/camera/setBearing.js +13 -13
  32. package/src/camera/setPitch.js +13 -13
  33. package/src/cog/decodeCogTile.js +37 -37
  34. package/src/cog/finiteCogValues.js +12 -12
  35. package/src/cog/getCogAssetEntry.js +26 -26
  36. package/src/cog/getCogBase.js +22 -22
  37. package/src/cog/getCogHeader.js +10 -10
  38. package/src/cog/getCogProfile.js +25 -25
  39. package/src/cog/getCogTile.js +25 -25
  40. package/src/cog/getColorTile.js +38 -38
  41. package/src/cog/getElevationTile.js +29 -29
  42. package/src/cog/hasCogProjection.js +16 -16
  43. package/src/cog/initCog.js +13 -13
  44. package/src/cog/invalidCogFullResponse.js +10 -10
  45. package/src/cog/openCog.js +40 -40
  46. package/src/cog/openCogAsset.js +22 -22
  47. package/src/cog/readCog.js +39 -39
  48. package/src/cog/readCogBlock.js +19 -19
  49. package/src/cog/readCogBody.js +30 -30
  50. package/src/cog/readCogDirectories.js +32 -32
  51. package/src/cog/readCogDirectory.js +34 -34
  52. package/src/cog/readCogLevel.js +36 -36
  53. package/src/cog/readCogTag.js +28 -28
  54. package/src/cog/validCogDimensions.js +15 -15
  55. package/src/cog/validCogEncoding.js +18 -18
  56. package/src/cog/validCogGeoArrays.js +17 -17
  57. package/src/cog/validCogGrid.js +22 -22
  58. package/src/cog/validCogTileCoordinates.js +13 -13
  59. package/src/cog/validateCogContainer.js +17 -17
  60. package/src/cog/validateCogContentRange.js +18 -18
  61. package/src/cog/validateCogOffsets.js +19 -19
  62. package/src/cog/validateCogRange.js +16 -16
  63. package/src/cog/validateCogResponse.js +26 -26
  64. package/src/collision/collectIntersections.js +41 -41
  65. package/src/collision/hiddenLightHit.js +19 -19
  66. package/src/collision/indexTriangle.js +18 -18
  67. package/src/collision/insideMesh.js +47 -47
  68. package/src/collision/insideWalker.js +52 -52
  69. package/src/collision/intersectMeshes.js +40 -40
  70. package/src/collision/localRay.js +31 -31
  71. package/src/collision/mergeHits.js +19 -19
  72. package/src/collision/rayBounds.js +28 -28
  73. package/src/collision/readTriangle.js +32 -32
  74. package/src/collision/trafficCollision.js +23 -23
  75. package/src/collision/transformTriangle.js +18 -18
  76. package/src/collision/triangleDistance.js +34 -34
  77. package/src/collision/vertexCount.js +11 -11
  78. package/src/collision/worldHit.js +30 -30
  79. package/src/controls/acceptPitchDrag.js +10 -10
  80. package/src/controls/acceptRotateDrag.js +9 -9
  81. package/src/controls/addCameraHandler.js +18 -18
  82. package/src/controls/adjustCameraDrag.js +13 -13
  83. package/src/controls/cameraDragContextMenu.js +12 -12
  84. package/src/controls/cameraDragEnd.js +10 -10
  85. package/src/controls/cameraDragMove.js +31 -31
  86. package/src/controls/changeCameraTouch.js +17 -17
  87. package/src/controls/compassOrientation.js +12 -12
  88. package/src/controls/compassRemoveHooks.js +2 -2
  89. package/src/controls/containerResizeRemoveHooks.js +2 -2
  90. package/src/controls/endCameraTouch.js +18 -18
  91. package/src/controls/failCompassPermission.js +10 -10
  92. package/src/controls/finishCameraDrag.js +14 -14
  93. package/src/controls/finishCompassPermission.js +24 -24
  94. package/src/controls/isEditableTarget.js +9 -9
  95. package/src/controls/loadCameraControls.js +18 -18
  96. package/src/controls/moveCameraTouch.js +34 -34
  97. package/src/controls/refreshRotateFocus.js +5 -5
  98. package/src/controls/removeCameraDrag.js +28 -28
  99. package/src/controls/resizeMap.js +7 -7
  100. package/src/controls/rotateButtonClick.js +16 -16
  101. package/src/controls/rotateButtonKeydown.js +20 -20
  102. package/src/controls/rotateControl.js +12 -12
  103. package/src/controls/shiftRotateRemoveHooks.js +2 -2
  104. package/src/controls/shiftRotateWheel.js +15 -15
  105. package/src/core/cameraMarkerOnDrag.js +16 -16
  106. package/src/core/constructLayer.js +16 -16
  107. package/src/core/extendLeafletClass.js +12 -12
  108. package/src/core/extendTerrainPixelBounds.js +41 -41
  109. package/src/core/layerAddInitHook.js +12 -12
  110. package/src/core/layerMergeOptions.js +14 -14
  111. package/src/core/markerInitInteraction.js +10 -10
  112. package/src/core/markerSetIcon.js +14 -14
  113. package/src/core/markerSetRotation.js +19 -19
  114. package/src/core/projectNativePath.js +30 -30
  115. package/src/core/redrawPath.js +11 -11
  116. package/src/core/removeLayer.js +26 -26
  117. package/src/core/setRotation.js +12 -12
  118. package/src/core/whenReady.js +14 -14
  119. package/src/geometry/addBridges.js +36 -36
  120. package/src/geometry/addGeneratedTriangle.js +10 -10
  121. package/src/geometry/appendAreaTriangle.js +32 -32
  122. package/src/geometry/appendNativeTriangle.js +17 -17
  123. package/src/geometry/appendRouteDash.js +33 -33
  124. package/src/geometry/appendRouteSegment.js +28 -28
  125. package/src/geometry/assembleAreaGeometry.js +48 -48
  126. package/src/geometry/bridgeEdge.js +18 -18
  127. package/src/geometry/bridgeFaces.js +22 -22
  128. package/src/geometry/bridgePaths.js +19 -19
  129. package/src/geometry/bridgePolygon.js +37 -37
  130. package/src/geometry/bridgeSides.js +18 -18
  131. package/src/geometry/buildProjectedPoint.js +32 -32
  132. package/src/geometry/buildProjectedPolygon.js +34 -34
  133. package/src/geometry/circleAt.js +20 -20
  134. package/src/geometry/circleGeometry.js +41 -41
  135. package/src/geometry/createModelGeometry.js +44 -44
  136. package/src/geometry/crossVector.js +15 -15
  137. package/src/geometry/dashValues.js +23 -23
  138. package/src/geometry/dashedSegment.js +33 -33
  139. package/src/geometry/diskAt.js +18 -18
  140. package/src/geometry/emitter.js +18 -18
  141. package/src/geometry/fillNativePolygon.js +28 -28
  142. package/src/geometry/generateTreeGeometry.js +18 -18
  143. package/src/geometry/indexBridge.js +36 -36
  144. package/src/geometry/instanceAreaGeometry.js +37 -37
  145. package/src/geometry/line.js +28 -28
  146. package/src/geometry/lineJoin.js +35 -35
  147. package/src/geometry/markerImageBounds.js +20 -20
  148. package/src/geometry/meshShadowBounds.js +33 -33
  149. package/src/geometry/offsetBelowGround.js +10 -10
  150. package/src/geometry/quad.js +23 -23
  151. package/src/geometry/restoreGeometry.js +29 -29
  152. package/src/geometry/roofCoverage.js +33 -33
  153. package/src/geometry/roofFootprint.js +40 -40
  154. package/src/geometry/samePoint.js +11 -11
  155. package/src/geometry/segment.js +32 -32
  156. package/src/geometry/subtractRoofTile.js +28 -28
  157. package/src/geometry/terrainBuffers.js +36 -36
  158. package/src/geometry/terrainTileGeometry.js +28 -28
  159. package/src/geometry/validateTree.js +19 -19
  160. package/src/globals/L.js +6 -6
  161. package/src/globals/cameraFov.js +8 -8
  162. package/src/globals/cogTags.js +6 -6
  163. package/src/globals/colorTexture.js +11 -11
  164. package/src/globals/cosObliquity.js +8 -8
  165. package/src/globals/degrees.js +6 -6
  166. package/src/globals/earthCirc.js +6 -6
  167. package/src/globals/geometryWorkerUrl.js +8 -8
  168. package/src/globals/halfRadians.js +6 -6
  169. package/src/globals/lampDirections.js +13 -13
  170. package/src/globals/layerControlAddItem.js +8 -8
  171. package/src/globals/leafletLayer.js +8 -8
  172. package/src/globals/lightScale.js +6 -6
  173. package/src/globals/mvtTextDecoder.js +6 -6
  174. package/src/globals/nativeScalableStyleKeys.js +6 -6
  175. package/src/globals/sinObliquity.js +8 -8
  176. package/src/globals/tau.js +6 -6
  177. package/src/globals/vectorStyleNamedColors.js +13 -13
  178. package/src/globals/vectorTileEvents.js +6 -6
  179. package/src/globals/workerCogSource.js +6 -6
  180. package/src/gpu/initializeRendererResources.js +39 -39
  181. package/src/gpu/initializeSharedRenderer.js +59 -59
  182. package/src/gpu/mountRenderer.js +25 -25
  183. package/src/layer-controls/layerControlInputId.js +18 -18
  184. package/src/layer-controls/layerCountTitle.js +16 -16
  185. package/src/layer-controls/placeEntryElement.js +29 -29
  186. package/src/layer-controls/renderLayerCount.js +28 -28
  187. package/src/lighting/visitLightCells.js +26 -26
  188. package/src/lighting/writeLightCell.js +14 -14
  189. package/src/materials/createProgramLayout.js +44 -44
  190. package/src/materials/createProgramUniforms.js +25 -25
  191. package/src/materials/modelMaterialFor.js +29 -29
  192. package/src/materials/prepareMeshCutout.js +21 -21
  193. package/src/materials/terrainRasterProgram.js +65 -65
  194. package/src/materials/validateRoofMaterial.js +17 -17
  195. package/src/models/applyModelTransform.js +18 -18
  196. package/src/models/buildModelNodes.js +24 -24
  197. package/src/models/createModelContext.js +24 -24
  198. package/src/models/loadBuffer.js +16 -16
  199. package/src/models/loadModelResources.js +22 -22
  200. package/src/models/normalizeAccessor.js +21 -21
  201. package/src/models/prepareModel.js +29 -29
  202. package/src/models/prepareModelGeometry.js +35 -35
  203. package/src/models/prepareModelPrimitive.js +25 -25
  204. package/src/models/readAccessorValue.js +16 -16
  205. package/src/models/readModelAttributes.js +32 -32
  206. package/src/models/readModelIndices.js +28 -28
  207. package/src/models/readSparseAccessor.js +31 -31
  208. package/src/models/releaseModelResources.js +15 -15
  209. package/src/mvt/addMvtCrossings.js +23 -23
  210. package/src/mvt/appendMvtBandTriangles.js +42 -42
  211. package/src/mvt/appendMvtCoordinates.js +20 -20
  212. package/src/mvt/appendMvtPolygonTriangles.js +29 -29
  213. package/src/mvt/beginMvtPath.js +19 -19
  214. package/src/mvt/closeMvtPath.js +16 -16
  215. package/src/mvt/collectMvtEdges.js +29 -29
  216. package/src/mvt/createMvtReader.js +14 -14
  217. package/src/mvt/decodeVectorTile.js +39 -39
  218. package/src/mvt/expectMvtWire.js +11 -11
  219. package/src/mvt/finishMvtPath.js +14 -14
  220. package/src/mvt/finiteMvtCoordinate.js +14 -14
  221. package/src/mvt/groupMvtPolygons.js +35 -35
  222. package/src/mvt/isMvtFallbackError.js +13 -13
  223. package/src/mvt/mergeMvtActiveEdges.js +18 -18
  224. package/src/mvt/mvtEdgeX.js +12 -12
  225. package/src/mvt/mvtPathsVertices.js +15 -15
  226. package/src/mvt/mvtPolygonPaths.js +19 -19
  227. package/src/mvt/numericMvtValue.js +11 -11
  228. package/src/mvt/readMvtFeature.js +46 -46
  229. package/src/mvt/readMvtField.js +17 -17
  230. package/src/mvt/readMvtGeometry.js +42 -42
  231. package/src/mvt/readMvtInteger.js +22 -22
  232. package/src/mvt/readMvtKnownValue.js +30 -30
  233. package/src/mvt/readMvtLayer.js +40 -40
  234. package/src/mvt/readMvtMessage.js +18 -18
  235. package/src/mvt/readMvtNumber.js +18 -18
  236. package/src/mvt/readMvtNumbers.js +18 -18
  237. package/src/mvt/readMvtString.js +14 -14
  238. package/src/mvt/readMvtValue.js +29 -29
  239. package/src/mvt/skipMvtField.js +22 -22
  240. package/src/mvt/sortMvtActiveEdges.js +20 -20
  241. package/src/mvt/sortedMvtLevels.js +29 -29
  242. package/src/mvt/takeMvtBytes.js +18 -18
  243. package/src/mvt/tessellateVectorRings.js +26 -26
  244. package/src/mvt/triangulateVectorRings.js +23 -23
  245. package/src/native/beforeNativeRender.js +21 -21
  246. package/src/native/bypassNativeEvent.js +21 -21
  247. package/src/native/canScaleNativeStyle.js +26 -26
  248. package/src/native/compareNativeHits.js +10 -10
  249. package/src/native/createNativeMesh.js +46 -46
  250. package/src/native/forwardNativeError.js +8 -8
  251. package/src/native/getGridTerrainTile.js +47 -47
  252. package/src/native/gridTerrainElevation.js +34 -34
  253. package/src/native/isCurrentNativeLayer.js +11 -11
  254. package/src/native/loadGridTerrain.js +36 -36
  255. package/src/native/nativeEventSource.js +27 -27
  256. package/src/native/nativeProgram.js +28 -28
  257. package/src/native/nativeTerrainElevation.js +27 -27
  258. package/src/native/nativeVectorGeometry.js +30 -30
  259. package/src/native/orderNativeGridLayer.js +20 -20
  260. package/src/native/prepareGridTerrainRequests.js +23 -23
  261. package/src/native/pruneNativeResources.js +25 -25
  262. package/src/native/readyNativeGPU.js +13 -13
  263. package/src/native/rejectNativeReady.js +2 -2
  264. package/src/native/removeNativeEvents.js +20 -20
  265. package/src/native/resolveNativeReady.js +2 -2
  266. package/src/native/restoreNativeEvents.js +8 -8
  267. package/src/native/retainGridTerrain.js +15 -15
  268. package/src/native/styleNativeMesh.js +20 -20
  269. package/src/native/syncGridTile.js +28 -28
  270. package/src/native/syncImageOverlay.js +13 -13
  271. package/src/native/syncNativeStrokeAnchors.js +18 -18
  272. package/src/native/syncNativeStrokeZoom.js +34 -34
  273. package/src/native/syncTerrainGridTile.js +38 -38
  274. package/src/native/terrainGridMesh.js +47 -47
  275. package/src/native/updateNativeHover.js +15 -15
  276. package/src/native/updateNativeStrokeRadius.js +14 -14
  277. package/src/picking/hitColliderCell.js +29 -29
  278. package/src/picking/validateCameraInverse.js +15 -15
  279. package/src/projections/displayContainerPoint.js +32 -32
  280. package/src/projections/projectBridgePoint.js +17 -17
  281. package/src/projections/toPoint.js +13 -13
  282. package/src/projections/transformZoomAnimationPoint.js +8 -8
  283. package/src/projections/verticalGroundY.js +14 -14
  284. package/src/raster/rasterTileRange.js +32 -32
  285. package/src/raster/retainRasterTiles.js +21 -21
  286. package/src/rendering/collectVisibleMesh.js +48 -48
  287. package/src/rendering/compareMeshDepth.js +14 -14
  288. package/src/rendering/drawPipeline.js +44 -44
  289. package/src/rendering/nativeStrokeExpansion.js +11 -11
  290. package/src/rendering/prepareFrameBuffer.js +24 -24
  291. package/src/rendering/prepareMeshUniforms.js +36 -36
  292. package/src/rendering/revealRoofMesh.js +43 -43
  293. package/src/scene/addSceneLayer.js +24 -24
  294. package/src/scene/callLayer.js +34 -34
  295. package/src/scene/createLayer.js +13 -13
  296. package/src/scene/getLocation.js +12 -12
  297. package/src/scene/isNativeLayer.js +19 -19
  298. package/src/scene/removeSceneLayer.js +22 -22
  299. package/src/scene/reportLayerError.js +9 -9
  300. package/src/shaders/materialBaseShader.js +26 -26
  301. package/src/shaders/materialSurfaceShader.js +60 -60
  302. package/src/shaders/materialVertexShader.js +89 -89
  303. package/src/shaders/nativeStrokeShader.js +13 -13
  304. package/src/shaders/roofVertexShader.js +16 -16
  305. package/src/shadows/shadowMeshMatches.js +19 -19
  306. package/src/sources/buildAreaFeatures.js +23 -23
  307. package/src/sources/extrusionStyle.js +21 -21
  308. package/src/sources/featureAnchor.js +21 -21
  309. package/src/sources/groundOffset.js +9 -9
  310. package/src/sources/initVectorTiles.js +21 -21
  311. package/src/sources/isVectorTileSource.js +11 -11
  312. package/src/sources/matchesAreaTile.js +17 -17
  313. package/src/sources/pendingSourceAreas.js +28 -28
  314. package/src/sources/prepareAreaGeometryJob.js +34 -34
  315. package/src/sources/projectAreaPolygons.js +25 -25
  316. package/src/sources/readyVectorTiles.js +17 -17
  317. package/src/sunlight/addTimeControlToMap.js +18 -18
  318. package/src/sunlight/addTimeLayer.js +12 -12
  319. package/src/sunlight/initializeTimeControl.js +18 -18
  320. package/src/sunlight/onAddSun.js +37 -37
  321. package/src/sunlight/onAddTimeControl.js +12 -12
  322. package/src/sunlight/onRemoveSun.js +10 -10
  323. package/src/sunlight/removeSun.js +25 -25
  324. package/src/sunlight/removeTimeControl.js +14 -14
  325. package/src/sunlight/removeTimeLayer.js +11 -11
  326. package/src/sunlight/requestSunlightRender.js +12 -12
  327. package/src/sunlight/styleTimeControl.js +13 -13
  328. package/src/sunlight/tickSun.js +10 -10
  329. package/src/sunlight/updateCelestialDisc.js +23 -23
  330. package/src/sunlight/updateSun.js +44 -44
  331. package/src/sunlight/useLiveTime.js +11 -11
  332. package/src/sunlight/useSelectedTime.js +26 -26
  333. package/src/terrain/applyTerrain.js +30 -30
  334. package/src/terrain/copyTerrainTile.js +20 -20
  335. package/src/terrain/loadReadyTerrain.js +6 -6
  336. package/src/terrain/mapElevationOf.js +19 -19
  337. package/src/terrain/readBridges.js +13 -13
  338. package/src/terrain/readyTerrainOf.js +14 -14
  339. package/src/terrain/sampleTerrainTile.js +16 -16
  340. package/src/terrain/terrainTileQueue.js +34 -34
  341. package/src/textures/addImageState.js +13 -13
  342. package/src/textures/bindMeshTextures.js +57 -57
  343. package/src/textures/collectRoofTiles.js +23 -23
  344. package/src/textures/loadModelImage.js +29 -29
  345. package/src/textures/modelTextureFor.js +47 -47
  346. package/src/textures/prepareMeshTextures.js +31 -31
  347. package/src/textures/removeImageState.js +13 -13
  348. package/src/textures/resizeRoofTexture.js +32 -32
  349. package/src/textures/restoreMaterialTextures.js +22 -22
  350. package/src/textures/updateRoofAtlas.js +29 -29
  351. package/src/textures/uploadMeshTexture.js +32 -32
  352. package/src/textures/uploadNativeImage.js +26 -26
  353. package/src/textures/uploadRoofTile.js +29 -29
  354. package/src/traffic/createTrafficMesh.js +17 -17
  355. package/src/traffic/disposeTrafficObject.js +19 -19
  356. package/src/traffic/failTraffic.js +12 -12
  357. package/src/traffic/failedTrafficLoad.js +10 -10
  358. package/src/traffic/fetchTrafficLanes.js +21 -21
  359. package/src/traffic/loadedTrafficLanes.js +21 -21
  360. package/src/traffic/locateTraffic.js +20 -20
  361. package/src/traffic/moveTraffic.js +21 -21
  362. package/src/traffic/readyTraffic.js +10 -10
  363. package/src/traffic/refreshTrafficTrips.js +42 -42
  364. package/src/traffic/routeColor.js +13 -13
  365. package/src/traffic/startTraffic.js +12 -12
  366. package/src/traffic/trafficNow.js +15 -15
  367. package/src/traffic/trafficStatusText.js +13 -13
  368. package/src/traffic/trafficStorage.js +13 -13
  369. package/src/traffic/updateTraffic.js +13 -13
  370. package/src/traffic/updateTrafficLights.js +23 -23
  371. package/src/traffic/updateTrafficPose.js +15 -15
  372. package/src/traffic/updateTrafficTerrain.js +15 -15
  373. package/src/traffic/uploadTrafficLanes.js +27 -27
  374. package/src/transforms/composeLocalTransform.js +23 -23
  375. package/src/transforms/transformNativePoint.js +19 -19
  376. package/src/transforms/worldMatrixChanged.js +26 -26
  377. package/src/triangulation/clipEars.js +32 -32
  378. package/src/triangulation/connectHole.js +30 -30
  379. package/src/triangulation/cross.js +12 -12
  380. package/src/triangulation/equal.js +11 -11
  381. package/src/triangulation/intersects.js +21 -21
  382. package/src/triangulation/mergeHoles.js +19 -19
  383. package/src/triangulation/on.js +13 -13
  384. package/src/triangulation/polygonRings.js +22 -22
  385. package/src/triangulation/validateArea.js +19 -19
  386. package/src/utils/compareDistance.js +11 -11
  387. package/src/utils/yieldTask.js +12 -12
  388. package/src/vector-style/appendQuotedStyleCharacter.js +30 -30
  389. package/src/vector-style/arrayContainsRange.js +18 -18
  390. package/src/vector-style/evaluateBoolean.js +31 -31
  391. package/src/vector-style/evaluateCoalesceOrCase.js +34 -34
  392. package/src/vector-style/evaluateComparison.js +29 -29
  393. package/src/vector-style/evaluateIExpression.js +21 -21
  394. package/src/vector-style/evaluateInput.js +16 -16
  395. package/src/vector-style/evaluateInterpolate.js +36 -36
  396. package/src/vector-style/evaluateMatch.js +21 -21
  397. package/src/vector-style/evaluateMath.js +26 -26
  398. package/src/vector-style/evaluateMembership.js +29 -29
  399. package/src/vector-style/evaluateNegation.js +26 -26
  400. package/src/vector-style/evaluatePrimitive.js +21 -21
  401. package/src/vector-style/evaluateStep.js +20 -20
  402. package/src/vector-style/evaluateStyle.js +43 -43
  403. package/src/vector-style/evaluateToExpression.js +27 -27
  404. package/src/vector-style/fillVectorPaint.js +26 -26
  405. package/src/vector-style/lineVectorPaint.js +31 -31
  406. package/src/vector-style/parseFunctionalColor.js +23 -23
  407. package/src/vector-style/parseHexColor.js +20 -20
  408. package/src/vector-style/parseVectorStyle.js +20 -20
  409. package/src/vector-style/readPaintValue.js +17 -17
  410. package/src/vector-style/removeTrailingCommas.js +19 -19
  411. package/src/vector-style/scaleDashArray.js +25 -25
  412. package/src/vector-style/skipStyleComment.js +20 -20
  413. package/src/vector-style/stripStyleComments.js +28 -28
  414. package/src/vector-style/styleColor.js +18 -18
  415. package/src/vector-style/validateVectorLayers.js +18 -18
  416. package/src/vector-style/vectorPaint.js +17 -17
  417. package/src/vector-style/visibleStyle.js +16 -16
  418. package/src/vector-tiles/appendVectorBatch.js +34 -34
  419. package/src/vector-tiles/attachVectorTileBatch.js +25 -25
  420. package/src/vector-tiles/attachVectorTileBatches.js +26 -26
  421. package/src/vector-tiles/compareVectorLabelPriority.js +11 -11
  422. package/src/vector-tiles/compareVectorTileDistance.js +11 -11
  423. package/src/vector-tiles/createVectorLabel.js +37 -37
  424. package/src/vector-tiles/forwardVectorTileError.js +10 -10
  425. package/src/vector-tiles/loadVectorSprite.js +14 -14
  426. package/src/vector-tiles/loadVectorTile.js +45 -45
  427. package/src/vector-tiles/onVectorTileAdd.js +44 -44
  428. package/src/vector-tiles/onVectorTileMessage.js +15 -15
  429. package/src/vector-tiles/onVectorTileRemove.js +25 -25
  430. package/src/vector-tiles/onVectorTileWorkerError.js +16 -16
  431. package/src/vector-tiles/paintVectorTileBatch.js +18 -18
  432. package/src/vector-tiles/prepareVectorLabel.js +34 -34
  433. package/src/vector-tiles/prepareVectorStyleLayer.js +38 -38
  434. package/src/vector-tiles/prepareVectorTile.js +29 -29
  435. package/src/vector-tiles/projectVectorPaths.js +25 -25
  436. package/src/vector-tiles/projectVectorPoint.js +15 -15
  437. package/src/vector-tiles/projectVectorTriangles.js +28 -28
  438. package/src/vector-tiles/pruneVectorTiles.js +14 -14
  439. package/src/vector-tiles/pumpVectorTiles.js +21 -21
  440. package/src/vector-tiles/readTileJSON.js +27 -27
  441. package/src/vector-tiles/readVectorStyle.js +28 -28
  442. package/src/vector-tiles/refreshVectorTiles.js +8 -8
  443. package/src/vector-tiles/reserveVectorLabelCells.js +14 -14
  444. package/src/vector-tiles/retireVectorTileGroup.js +20 -20
  445. package/src/vector-tiles/revokeVectorWorkerUrl.js +14 -14
  446. package/src/vector-tiles/rotateVectorLabel.js +19 -19
  447. package/src/vector-tiles/rotateVectorLabels.js +9 -9
  448. package/src/vector-tiles/simplifyVectorPath.js +29 -29
  449. package/src/vector-tiles/updateVectorLabelMarker.js +36 -36
  450. package/src/vector-tiles/updateVectorLabelStyle.js +14 -14
  451. package/src/vector-tiles/updateVectorTileLabels.js +33 -33
  452. package/src/vector-tiles/updateVectorTilePaint.js +25 -25
  453. package/src/vector-tiles/updateVectorTiles.js +32 -32
  454. package/src/vector-tiles/validateVectorTileZooms.js +15 -15
  455. package/src/vector-tiles/vectorFeaturePaint.js +25 -25
  456. package/src/vector-tiles/vectorFeaturePaths.js +26 -26
  457. package/src/vector-tiles/vectorFeatureZoom.js +18 -18
  458. package/src/vector-tiles/vectorLabelAnchors.js +31 -31
  459. package/src/vector-tiles/vectorLabelCandidates.js +18 -18
  460. package/src/vector-tiles/vectorLabelCells.js +32 -32
  461. package/src/vector-tiles/vectorLabelIcon.js +38 -38
  462. package/src/vector-tiles/vectorLabelProperty.js +12 -12
  463. package/src/vector-tiles/vectorLabelText.js +19 -19
  464. package/src/vector-tiles/vectorSpriteIcon.js +19 -19
  465. package/src/vector-tiles/vectorStraightRun.js +23 -23
  466. package/src/vector-tiles/vectorStyleDependencies.js +22 -22
  467. package/src/vector-tiles/vectorStyleValue.js +16 -16
  468. package/src/vector-tiles/vectorStyleZoom.js +12 -12
  469. package/src/vector-tiles/vectorTileAwaited.js +17 -17
  470. package/src/vector-tiles/vectorTileOverlaps.js +12 -12
  471. package/src/vector-tiles/vectorTilePaint.js +18 -18
  472. package/src/vector-tiles/vectorTileSettings.js +27 -27
  473. package/src/vector-tiles/vectorTilesIdle.js +11 -11
  474. package/src/vector-tiles/vectorTolerance.js +11 -11
  475. package/src/vector-tiles/wrapVectorLabel.js +17 -17
  476. package/src/vehicles/boatModel.js +35 -35
  477. package/src/vehicles/busModel.js +13 -13
  478. package/src/vehicles/carModel.js +39 -39
  479. package/src/walk/initializeWalkControl.js +12 -12
  480. package/src/walk/isWalkBlocked.js +15 -15
  481. package/src/walk/landWalker.js +41 -41
  482. package/src/walk/moveWalker.js +37 -37
  483. package/src/walk/onAddWalkControl.js +40 -40
  484. package/src/walk/onRemoveWalkControl.js +17 -17
  485. package/src/walk/onWalkBlur.js +3 -3
  486. package/src/walk/onWalkTerrain.js +3 -3
  487. package/src/walk/resolveWalkerPosition.js +33 -33
  488. package/src/walk/stepWalkerHeight.js +18 -18
  489. package/src/walk/toggleWalking.js +4 -4
  490. package/src/walk/updateWalkerFrame.js +29 -29
  491. package/src/walk/updateWalkerView.js +31 -31
  492. package/src/weakmaps/cameraHandlersByMap.js +6 -6
  493. package/src/weakmaps/geometryWorkersByMap.js +6 -6
  494. package/src/weakmaps/nativeProgramsByRenderer.js +6 -6
  495. package/src/weakmaps/pathProjectionByMap.js +6 -6
  496. package/src/weakmaps/streamTerrainByLayer.js +6 -6
  497. package/src/weakmaps/streamTerrainByMap.js +6 -6
  498. package/src/weakmaps/sunByMap.js +6 -6
  499. package/src/weakmaps/vectorTileOptionsByLayer.js +6 -6
  500. package/src/weakmaps/vectorWorkerByLayer.js +6 -6
  501. package/src/weakmaps/walkByMap.js +6 -6
  502. package/src/weakmaps/workerMapByLayer.js +6 -6
  503. package/src/workers/acquireGeometryWorker.js +39 -39
  504. package/src/workers/buildAreaInWorker.js +24 -24
  505. package/src/workers/closeGeometryWorkers.js +16 -16
  506. package/src/workers/cogWorker.js +27 -27
  507. package/src/workers/createGeometryWorker.js +30 -30
  508. package/src/workers/geometryWorker.js +34 -34
  509. package/src/workers/getCogInWorker.js +18 -18
  510. package/src/workers/modelWorker.js +17 -17
  511. package/src/workers/openCogInWorker.js +22 -22
  512. package/src/workers/runSourceWorker.js +44 -44
  513. package/src/workers/settleGeometryWorker.js +16 -16
  514. package/src/workers/startGeometryWorker.js +23 -23
  515. package/src/workers/vectorTileWorker.js +15 -15
@@ -1,17 +1,17 @@
1
- import { evaluateStyle } from './evaluateStyle.js';
2
-
3
- /**
4
- * Evaluate a paint value or return its fallback when absent.
5
- *
6
- * @param {Object} paint Paint values.
7
- * @param {string} key Paint property name.
8
- * @param {*} fallback Default value.
9
- * @param {Object} properties Feature properties.
10
- * @param {number} zoom Current zoom.
11
- *
12
- * @returns {*} Evaluated paint value or fallback.
13
- */
14
- export function readPaintValue(paint, key, fallback, properties, zoom) {
15
- if (paint[key] === undefined) return fallback;
16
- return evaluateStyle(paint[key], properties, zoom);
17
- }
1
+ import { evaluateStyle } from './evaluateStyle.js';
2
+
3
+ /**
4
+ * Evaluate a paint value or return its fallback when absent.
5
+ *
6
+ * @param {Object} paint Paint values.
7
+ * @param {string} key Paint property name.
8
+ * @param {*} fallback Default value.
9
+ * @param {Object} properties Feature properties.
10
+ * @param {number} zoom Current zoom.
11
+ *
12
+ * @returns {*} Evaluated paint value or fallback.
13
+ */
14
+ export function readPaintValue(paint, key, fallback, properties, zoom) {
15
+ if (paint[key] === undefined) return fallback;
16
+ return evaluateStyle(paint[key], properties, zoom);
17
+ }
@@ -1,19 +1,19 @@
1
- /**
2
- * Remove trailing object and array commas outside quoted JSON strings.
3
- *
4
- * @param {string} json JSON-like source.
5
- *
6
- * @returns {string} Source without trailing commas.
7
- */
8
- export function removeTrailingCommas(json) {
9
- let cleaned = '', quoted = false, escaped = false, i = 0, char = '';
10
- for (i = 0; i < json.length; i++) {
11
- char = json[i];
12
- if (!quoted && char === ',' && /^\s*[\]}]/.test(json.slice(i + 1))) continue;
13
- cleaned += char;
14
- if (escaped) escaped = false;
15
- else if (quoted && char === '\\') escaped = true;
16
- else if (char === '"') quoted = !quoted;
17
- }
18
- return cleaned;
19
- }
1
+ /**
2
+ * Remove trailing object and array commas outside quoted JSON strings.
3
+ *
4
+ * @param {string} json JSON-like source.
5
+ *
6
+ * @returns {string} Source without trailing commas.
7
+ */
8
+ export function removeTrailingCommas(json) {
9
+ let cleaned = '', quoted = false, escaped = false, i = 0, char = '';
10
+ for (i = 0; i < json.length; i++) {
11
+ char = json[i];
12
+ if (!quoted && char === ',' && /^\s*[\]}]/.test(json.slice(i + 1))) continue;
13
+ cleaned += char;
14
+ if (escaped) escaped = false;
15
+ else if (quoted && char === '\\') escaped = true;
16
+ else if (char === '"') quoted = !quoted;
17
+ }
18
+ return cleaned;
19
+ }
@@ -1,25 +1,25 @@
1
- import { evaluateStyle } from './evaluateStyle.js';
2
-
3
- /**
4
- * Evaluate and scale a style dash array by the line width.
5
- *
6
- * @param {Array} dash Dash pattern or expression, if present.
7
- * @param {number} weight Line width.
8
- * @param {Object} properties Feature properties.
9
- * @param {number} zoom Current zoom.
10
- *
11
- * @returns {string|undefined} Space-separated scaled dashes, or undefined.
12
- *
13
- * @throws {TypeError} If the evaluated dash pattern is not an array.
14
- */
15
- export function scaleDashArray(dash, weight, properties, zoom) {
16
- if (!dash) return undefined;
17
- let values = dash, i = 0, result = '';
18
- if (typeof dash[0] !== 'number') values = evaluateStyle(dash, properties, zoom);
19
- if (!Array.isArray(values)) throw /* alloc */ new TypeError('Style dash array must be an array');
20
- for (i = 0; i < values.length; i++) {
21
- if (i) result += ' ';
22
- result += values[i] * weight;
23
- }
24
- return result;
25
- }
1
+ import { evaluateStyle } from './evaluateStyle.js';
2
+
3
+ /**
4
+ * Evaluate and scale a style dash array by the line width.
5
+ *
6
+ * @param {Array} dash Dash pattern or expression, if present.
7
+ * @param {number} weight Line width.
8
+ * @param {Object} properties Feature properties.
9
+ * @param {number} zoom Current zoom.
10
+ *
11
+ * @returns {string|undefined} Space-separated scaled dashes, or undefined.
12
+ *
13
+ * @throws {TypeError} If the evaluated dash pattern is not an array.
14
+ */
15
+ export function scaleDashArray(dash, weight, properties, zoom) {
16
+ if (!dash) return undefined;
17
+ let values = dash, i = 0, result = '';
18
+ if (typeof dash[0] !== 'number') values = evaluateStyle(dash, properties, zoom);
19
+ if (!Array.isArray(values)) throw /* alloc */ new TypeError('Style dash array must be an array');
20
+ for (i = 0; i < values.length; i++) {
21
+ if (i) result += ' ';
22
+ result += values[i] * weight;
23
+ }
24
+ return result;
25
+ }
@@ -1,20 +1,20 @@
1
- /**
2
- * Find the end of a line or block comment in style source text.
3
- *
4
- * @param {string} text Style source.
5
- * @param {number} index Comment start index.
6
- * @param {string} marker Character after the initial slash.
7
- *
8
- * @returns {number} Index at the end of the comment.
9
- *
10
- * @throws {Error} If a block comment is unterminated.
11
- */
12
- export function skipStyleComment(text, index, marker) {
13
- if (marker === '/') {
14
- while (index < text.length && text[index] !== '\n') index++;
15
- return index;
16
- }
17
- const end = text.indexOf('*/', index + 2);
18
- if (end < 0) throw /* alloc */ new Error('Unterminated style comment');
19
- return end + 1;
20
- }
1
+ /**
2
+ * Find the end of a line or block comment in style source text.
3
+ *
4
+ * @param {string} text Style source.
5
+ * @param {number} index Comment start index.
6
+ * @param {string} marker Character after the initial slash.
7
+ *
8
+ * @returns {number} Index at the end of the comment.
9
+ *
10
+ * @throws {Error} If a block comment is unterminated.
11
+ */
12
+ export function skipStyleComment(text, index, marker) {
13
+ if (marker === '/') {
14
+ while (index < text.length && text[index] !== '\n') index++;
15
+ return index;
16
+ }
17
+ const end = text.indexOf('*/', index + 2);
18
+ if (end < 0) throw /* alloc */ new Error('Unterminated style comment');
19
+ return end + 1;
20
+ }
@@ -1,28 +1,28 @@
1
- import { appendQuotedStyleCharacter } from './appendQuotedStyleCharacter.js';
2
- import { skipStyleComment } from './skipStyleComment.js';
3
-
4
- /**
5
- * Strip style comments and normalize quoted strings to JSON form.
6
- *
7
- * @param {string} text Style source text.
8
- *
9
- * @returns {string} Comment-free JSON-like text.
10
- */
11
- export function stripStyleComments(text) {
12
- let json = '', i = 0, char = '', next = '', converted = undefined;
13
- const state = /* alloc */ { quoted: '', escaped: false };
14
- for (i = 0; i < text.length; i++) {
15
- char = text[i];
16
- next = text[i + 1];
17
- converted = appendQuotedStyleCharacter(char, state);
18
- if (converted !== undefined) {
19
- json += converted;
20
- continue;
21
- }
22
- if (char === '/' && (next === '/' || next === '*')) {
23
- i = skipStyleComment(text, i, next);
24
- json += next === '/' ? '\n' : ' ';
25
- } else json += char;
26
- }
27
- return json;
28
- }
1
+ import { appendQuotedStyleCharacter } from './appendQuotedStyleCharacter.js';
2
+ import { skipStyleComment } from './skipStyleComment.js';
3
+
4
+ /**
5
+ * Strip style comments and normalize quoted strings to JSON form.
6
+ *
7
+ * @param {string} text Style source text.
8
+ *
9
+ * @returns {string} Comment-free JSON-like text.
10
+ */
11
+ export function stripStyleComments(text) {
12
+ let json = '', i = 0, char = '', next = '', converted = undefined;
13
+ const state = /* alloc */ { quoted: '', escaped: false };
14
+ for (i = 0; i < text.length; i++) {
15
+ char = text[i];
16
+ next = text[i + 1];
17
+ converted = appendQuotedStyleCharacter(char, state);
18
+ if (converted !== undefined) {
19
+ json += converted;
20
+ continue;
21
+ }
22
+ if (char === '/' && (next === '/' || next === '*')) {
23
+ i = skipStyleComment(text, i, next);
24
+ json += next === '/' ? '\n' : ' ';
25
+ } else json += char;
26
+ }
27
+ return json;
28
+ }
@@ -1,18 +1,18 @@
1
- import { vectorStyleNamedColors } from '../globals/vectorStyleNamedColors.js';
2
- import { parseFunctionalColor } from './parseFunctionalColor.js';
3
- import { parseHexColor } from './parseHexColor.js';
4
-
5
- /**
6
- * Resolve a supported named, hexadecimal or functional style color.
7
- *
8
- * @param {string} value Color text.
9
- *
10
- * @returns {Array<number>} Red, green, blue and alpha components.
11
- */
12
- export function styleColor(value) {
13
- if (Object.hasOwn(vectorStyleNamedColors, value)) return vectorStyleNamedColors[value];
14
- if (/^#[0-9a-f]{3}$/i.test(value) || /^#[0-9a-f]{6}$/i.test(value)) {
15
- return parseHexColor(value);
16
- }
17
- return parseFunctionalColor(value);
18
- }
1
+ import { vectorStyleNamedColors } from '../globals/vectorStyleNamedColors.js';
2
+ import { parseFunctionalColor } from './parseFunctionalColor.js';
3
+ import { parseHexColor } from './parseHexColor.js';
4
+
5
+ /**
6
+ * Resolve a supported named, hexadecimal or functional style color.
7
+ *
8
+ * @param {string} value Color text.
9
+ *
10
+ * @returns {Array<number>} Red, green, blue and alpha components.
11
+ */
12
+ export function styleColor(value) {
13
+ if (Object.hasOwn(vectorStyleNamedColors, value)) return vectorStyleNamedColors[value];
14
+ if (/^#[0-9a-f]{3}$/i.test(value) || /^#[0-9a-f]{6}$/i.test(value)) {
15
+ return parseHexColor(value);
16
+ }
17
+ return parseFunctionalColor(value);
18
+ }
@@ -1,18 +1,18 @@
1
- /**
2
- * Validate that a vector style contains layers with string IDs and types.
3
- *
4
- * @param {*} layers Parsed style layers.
5
- *
6
- * @throws {Error} If layers is not an array.
7
- * @throws {Error} If a layer lacks a string ID or type.
8
- */
9
- export function validateVectorLayers(layers) {
10
- let i = 0, layer = null;
11
- if (!Array.isArray(layers)) throw /* alloc */ new Error('Invalid vector style layers');
12
- for (i = 0; i < layers.length; i++) {
13
- layer = layers[i];
14
- if (!layer || typeof layer.id !== 'string' || typeof layer.type !== 'string') {
15
- throw /* alloc */ new Error('Invalid vector style layers');
16
- }
17
- }
18
- }
1
+ /**
2
+ * Validate that a vector style contains layers with string IDs and types.
3
+ *
4
+ * @param {*} layers Parsed style layers.
5
+ *
6
+ * @throws {Error} If layers is not an array.
7
+ * @throws {Error} If a layer lacks a string ID or type.
8
+ */
9
+ export function validateVectorLayers(layers) {
10
+ let i = 0, layer = null;
11
+ if (!Array.isArray(layers)) throw /* alloc */ new Error('Invalid vector style layers');
12
+ for (i = 0; i < layers.length; i++) {
13
+ layer = layers[i];
14
+ if (!layer || typeof layer.id !== 'string' || typeof layer.type !== 'string') {
15
+ throw /* alloc */ new Error('Invalid vector style layers');
16
+ }
17
+ }
18
+ }
@@ -1,17 +1,17 @@
1
- import { fillVectorPaint } from './fillVectorPaint.js';
2
- import { lineVectorPaint } from './lineVectorPaint.js';
3
-
4
- /**
5
- * Resolve a vector style layer's fill or line paint for a feature.
6
- *
7
- * @param {Object} layer Vector style layer.
8
- * @param {Object} properties Feature properties.
9
- * @param {number} zoom Current zoom.
10
- *
11
- * @returns {Object} Resolved rendering options.
12
- */
13
- export function vectorPaint(layer, properties, zoom) {
14
- const paint = layer.paint || /* alloc */ {};
15
- if (layer.type === 'fill') return fillVectorPaint(paint, properties, zoom);
16
- return lineVectorPaint(layer, paint, properties, zoom);
17
- }
1
+ import { fillVectorPaint } from './fillVectorPaint.js';
2
+ import { lineVectorPaint } from './lineVectorPaint.js';
3
+
4
+ /**
5
+ * Resolve a vector style layer's fill or line paint for a feature.
6
+ *
7
+ * @param {Object} layer Vector style layer.
8
+ * @param {Object} properties Feature properties.
9
+ * @param {number} zoom Current zoom.
10
+ *
11
+ * @returns {Object} Resolved rendering options.
12
+ */
13
+ export function vectorPaint(layer, properties, zoom) {
14
+ const paint = layer.paint || /* alloc */ {};
15
+ if (layer.type === 'fill') return fillVectorPaint(paint, properties, zoom);
16
+ return lineVectorPaint(layer, paint, properties, zoom);
17
+ }
@@ -1,16 +1,16 @@
1
- import { evaluateStyle } from './evaluateStyle.js';
2
-
3
- /**
4
- * Check a style layer's zoom range, visibility and feature filter.
5
- *
6
- * @param {Object} layer Vector style layer.
7
- * @param {Object} properties Feature properties.
8
- * @param {number} zoom Current zoom.
9
- *
10
- * @returns {boolean} Whether the layer is visible for the feature.
11
- */
12
- export function visibleStyle(layer, properties, zoom) {
13
- return zoom >= (layer.minzoom ?? 0) && zoom < (layer.maxzoom ?? Infinity) &&
14
- layer.layout?.visibility !== 'none' &&
15
- (!layer.filter || evaluateStyle(layer.filter, properties, zoom, true));
16
- }
1
+ import { evaluateStyle } from './evaluateStyle.js';
2
+
3
+ /**
4
+ * Check a style layer's zoom range, visibility and feature filter.
5
+ *
6
+ * @param {Object} layer Vector style layer.
7
+ * @param {Object} properties Feature properties.
8
+ * @param {number} zoom Current zoom.
9
+ *
10
+ * @returns {boolean} Whether the layer is visible for the feature.
11
+ */
12
+ export function visibleStyle(layer, properties, zoom) {
13
+ return zoom >= (layer.minzoom ?? 0) && zoom < (layer.maxzoom ?? Infinity) &&
14
+ layer.layout?.visibility !== 'none' &&
15
+ (!layer.filter || evaluateStyle(layer.filter, properties, zoom, true));
16
+ }
@@ -1,34 +1,34 @@
1
- import { vectorFeaturePaths } from './vectorFeaturePaths.js';
2
-
3
- /**
4
- * Group feature paths by paint and style dependencies, splitting large batches.
5
- *
6
- * @param {Object} job Vector tile preparation job.
7
- * @param {Object} layer Decoded source layer.
8
- * @param {Object} entry Style layer entry.
9
- * @param {Object} feature Decoded feature.
10
- * @param {number} order Style layer order.
11
- * @param {Map} batches Batches indexed by paint and property values.
12
- * @param {Iterable<string>} dependencies Feature properties used by the style.
13
- * @param {Object} paint Evaluated paint.
14
- */
15
- export function appendVectorBatch(job, layer, entry, feature, order, batches, dependencies, paint) {
16
- const values = /* alloc */ [];
17
- let key, batch, path, count;
18
- for (key of dependencies) values.push(feature.properties[key]);
19
- key = JSON.stringify(/* alloc */ [paint, values]);
20
- batch = batches.get(key);
21
- if (!batch) {
22
- batch = /* alloc */ { kind: entry.type, order, paint, properties: feature.properties, entry,
23
- paths: /* alloc */ [], coordinates: 0 };
24
- batches.set(key, batch);
25
- }
26
- for (path of vectorFeaturePaths(job, layer, entry, feature)) {
27
- count = entry.type === 'fill' ? 3 : path.length;
28
- if (batch.coordinates + count > 6000 && batch.paths.length) {
29
- job.output.push(/* alloc */ { ...batch, paths: batch.paths });
30
- batch.paths = /* alloc */ []; batch.coordinates = 0;
31
- }
32
- batch.paths.push(path); batch.coordinates += count;
33
- }
34
- }
1
+ import { vectorFeaturePaths } from './vectorFeaturePaths.js';
2
+
3
+ /**
4
+ * Group feature paths by paint and style dependencies, splitting large batches.
5
+ *
6
+ * @param {Object} job Vector tile preparation job.
7
+ * @param {Object} layer Decoded source layer.
8
+ * @param {Object} entry Style layer entry.
9
+ * @param {Object} feature Decoded feature.
10
+ * @param {number} order Style layer order.
11
+ * @param {Map} batches Batches indexed by paint and property values.
12
+ * @param {Iterable<string>} dependencies Feature properties used by the style.
13
+ * @param {Object} paint Evaluated paint.
14
+ */
15
+ export function appendVectorBatch(job, layer, entry, feature, order, batches, dependencies, paint) {
16
+ const values = /* alloc */ [];
17
+ let key, batch, path, count;
18
+ for (key of dependencies) values.push(feature.properties[key]);
19
+ key = JSON.stringify(/* alloc */ [paint, values]);
20
+ batch = batches.get(key);
21
+ if (!batch) {
22
+ batch = /* alloc */ { kind: entry.type, order, paint, properties: feature.properties, entry,
23
+ paths: /* alloc */ [], coordinates: 0 };
24
+ batches.set(key, batch);
25
+ }
26
+ for (path of vectorFeaturePaths(job, layer, entry, feature)) {
27
+ count = entry.type === 'fill' ? 3 : path.length;
28
+ if (batch.coordinates + count > 6000 && batch.paths.length) {
29
+ job.output.push(/* alloc */ { ...batch, paths: batch.paths });
30
+ batch.paths = /* alloc */ []; batch.coordinates = 0;
31
+ }
32
+ batch.paths.push(path); batch.coordinates += count;
33
+ }
34
+ }
@@ -1,25 +1,25 @@
1
- import { L } from '../globals/L.js';
2
- import { vectorTileOptionsByLayer } from '../weakmaps/vectorTileOptionsByLayer.js';
3
- import { vectorStyleZoom } from './vectorStyleZoom.js';
4
- import { vectorTilePaint } from './vectorTilePaint.js';
5
- import { forwardVectorTileError } from './forwardVectorTileError.js';
6
-
7
- /**
8
- * Create and attach a rendered Leaflet layer for a prepared vector batch.
9
- *
10
- * @param {Object} owner Vector tile layer.
11
- * @param {Object} tile Tile receiving the rendered batch.
12
- * @param {Object} group Leaflet group receiving the layer.
13
- * @param {Object} batch Prepared vector batch.
14
- */
15
- export function attachVectorTileBatch(owner, tile, group, batch) {
16
- const { pane } = vectorTileOptionsByLayer.get(owner);
17
- const paint = vectorTilePaint(batch, vectorStyleZoom(owner));
18
- const options = /* alloc */ { ...paint, pane: `${pane}-${batch.order}`, interactive: false, smoothFactor: 0 };
19
- const layer = batch.kind === 'fill'
20
- ? /* alloc */ new L.Polygon(batch.paths, /* alloc */ { ...options, stroke: false, triangulated: true })
21
- : /* alloc */ new L.Polyline(batch.paths, options);
22
- layer.on('error', forwardVectorTileError, owner);
23
- tile.rendered.push(/* alloc */ { layer, kind: batch.kind, entry: batch.entry, properties: batch.properties });
24
- group.addLayer(layer);
25
- }
1
+ import { L } from '../globals/L.js';
2
+ import { vectorTileOptionsByLayer } from '../weakmaps/vectorTileOptionsByLayer.js';
3
+ import { vectorStyleZoom } from './vectorStyleZoom.js';
4
+ import { vectorTilePaint } from './vectorTilePaint.js';
5
+ import { forwardVectorTileError } from './forwardVectorTileError.js';
6
+
7
+ /**
8
+ * Create and attach a rendered Leaflet layer for a prepared vector batch.
9
+ *
10
+ * @param {Object} owner Vector tile layer.
11
+ * @param {Object} tile Tile receiving the rendered batch.
12
+ * @param {Object} group Leaflet group receiving the layer.
13
+ * @param {Object} batch Prepared vector batch.
14
+ */
15
+ export function attachVectorTileBatch(owner, tile, group, batch) {
16
+ const { pane } = vectorTileOptionsByLayer.get(owner);
17
+ const paint = vectorTilePaint(batch, vectorStyleZoom(owner));
18
+ const options = /* alloc */ { ...paint, pane: `${pane}-${batch.order}`, interactive: false, smoothFactor: 0 };
19
+ const layer = batch.kind === 'fill'
20
+ ? /* alloc */ new L.Polygon(batch.paths, /* alloc */ { ...options, stroke: false, triangulated: true })
21
+ : /* alloc */ new L.Polyline(batch.paths, options);
22
+ layer.on('error', forwardVectorTileError, owner);
23
+ tile.rendered.push(/* alloc */ { layer, kind: batch.kind, entry: batch.entry, properties: batch.properties });
24
+ group.addLayer(layer);
25
+ }
@@ -1,26 +1,26 @@
1
- import { attachVectorTileBatch } from './attachVectorTileBatch.js';
2
- import { vectorTilesIdle } from './vectorTilesIdle.js';
3
- import { yieldTask } from '../utils/yieldTask.js';
4
-
5
- /**
6
- * Attach vector batches incrementally while the tile session remains current.
7
- *
8
- * @param {Object} owner Vector tile layer.
9
- * @param {Object} tile Tile receiving the batches.
10
- * @param {Object} group Leaflet group receiving the layers.
11
- * @param {Array} batches Prepared vector batches.
12
- * @param {Object} session Session identity.
13
- *
14
- * @returns {Promise<boolean>} Whether every batch was attached.
15
- */
16
- export async function attachVectorTileBatches(owner, tile, group, batches, session) {
17
- let batch, start = performance.now();
18
- for (batch of batches) {
19
- while (!vectorTilesIdle(owner, session) && owner.session === session &&
20
- !tile.controller.signal.aborted) await yieldTask(50);
21
- if (tile.controller.signal.aborted || owner.session !== session) return false;
22
- attachVectorTileBatch(owner, tile, group, batch);
23
- if (performance.now() - start > 8) { await yieldTask(); start = performance.now(); }
24
- }
25
- return true;
26
- }
1
+ import { attachVectorTileBatch } from './attachVectorTileBatch.js';
2
+ import { vectorTilesIdle } from './vectorTilesIdle.js';
3
+ import { yieldTask } from '../utils/yieldTask.js';
4
+
5
+ /**
6
+ * Attach vector batches incrementally while the tile session remains current.
7
+ *
8
+ * @param {Object} owner Vector tile layer.
9
+ * @param {Object} tile Tile receiving the batches.
10
+ * @param {Object} group Leaflet group receiving the layers.
11
+ * @param {Array} batches Prepared vector batches.
12
+ * @param {Object} session Session identity.
13
+ *
14
+ * @returns {Promise<boolean>} Whether every batch was attached.
15
+ */
16
+ export async function attachVectorTileBatches(owner, tile, group, batches, session) {
17
+ let batch, start = performance.now();
18
+ for (batch of batches) {
19
+ while (!vectorTilesIdle(owner, session) && owner.session === session &&
20
+ !tile.controller.signal.aborted) await yieldTask(50);
21
+ if (tile.controller.signal.aborted || owner.session !== session) return false;
22
+ attachVectorTileBatch(owner, tile, group, batch);
23
+ if (performance.now() - start > 8) { await yieldTask(); start = performance.now(); }
24
+ }
25
+ return true;
26
+ }
@@ -1,11 +1,11 @@
1
- /**
2
- * Order vector labels by ascending priority value.
3
- *
4
- * @param {Object} a First label.
5
- * @param {Object} b Second label.
6
- *
7
- * @returns {number} Relative order of the labels.
8
- */
9
- export function compareVectorLabelPriority(a, b) {
10
- return a.priority - b.priority;
11
- }
1
+ /**
2
+ * Order vector labels by ascending priority value.
3
+ *
4
+ * @param {Object} a First label.
5
+ * @param {Object} b Second label.
6
+ *
7
+ * @returns {number} Relative order of the labels.
8
+ */
9
+ export function compareVectorLabelPriority(a, b) {
10
+ return a.priority - b.priority;
11
+ }
@@ -1,11 +1,11 @@
1
- /**
2
- * Order vector tiles by ascending distance.
3
- *
4
- * @param {Object} a First tile.
5
- * @param {Object} b Second tile.
6
- *
7
- * @returns {number} Relative order of the tiles.
8
- */
9
- export function compareVectorTileDistance(a, b) {
10
- return a.distance - b.distance;
11
- }
1
+ /**
2
+ * Order vector tiles by ascending distance.
3
+ *
4
+ * @param {Object} a First tile.
5
+ * @param {Object} b Second tile.
6
+ *
7
+ * @returns {number} Relative order of the tiles.
8
+ */
9
+ export function compareVectorTileDistance(a, b) {
10
+ return a.distance - b.distance;
11
+ }