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,21 +1,21 @@
1
- import { kindByLayer } from '../weakmaps/kindByLayer.js';
2
- import { readyByLayer } from '../weakmaps/readyByLayer.js';
3
- import { configureVectorTileLayer } from '../vector-tiles/configureVectorTileLayer.js';
4
- import { readyVectorTiles } from './readyVectorTiles.js';
5
- import { reportError } from '../raster/reportRasterError.js';
6
- import { noOperation } from '../utils/noOperation.js';
7
-
8
- /**
9
- * Configure a vector tile layer asynchronously and report initialization errors.
10
- *
11
- * @param {L.Layer} layer Layer to initialize.
12
- * @param {Object} options Vector tile configuration.
13
- */
14
- export function initVectorTiles(layer, options) {
15
- kindByLayer.set(layer, 'pending');
16
- const ready = configureVectorTileLayer(layer, options)
17
- .then(readyVectorTiles.bind(null, layer))
18
- .catch(reportError.bind(null, layer));
19
- readyByLayer.set(layer, ready);
20
- ready.catch(noOperation);
21
- }
1
+ import { kindByLayer } from '../weakmaps/kindByLayer.js';
2
+ import { readyByLayer } from '../weakmaps/readyByLayer.js';
3
+ import { configureVectorTileLayer } from '../vector-tiles/configureVectorTileLayer.js';
4
+ import { readyVectorTiles } from './readyVectorTiles.js';
5
+ import { reportError } from '../raster/reportRasterError.js';
6
+ import { noOperation } from '../utils/noOperation.js';
7
+
8
+ /**
9
+ * Configure a vector tile layer asynchronously and report initialization errors.
10
+ *
11
+ * @param {L.Layer} layer Layer to initialize.
12
+ * @param {Object} options Vector tile configuration.
13
+ */
14
+ export function initVectorTiles(layer, options) {
15
+ kindByLayer.set(layer, 'pending');
16
+ const ready = configureVectorTileLayer(layer, options)
17
+ .then(readyVectorTiles.bind(null, layer))
18
+ .catch(reportError.bind(null, layer));
19
+ readyByLayer.set(layer, ready);
20
+ ready.catch(noOperation);
21
+ }
@@ -1,11 +1,11 @@
1
- /**
2
- * Detect a tileJSON or templated tile URL when inline data is absent.
3
- *
4
- * @param {Object} options Source options.
5
- *
6
- * @returns {boolean} Whether the options identify a vector tile source.
7
- */
8
- export function isVectorTileSource(options) {
9
- return options.data === undefined && (options.tileJSON !== undefined ||
10
- typeof options.url === 'string' && /\{[zxy]\}|%7B[zxy]%7D/i.test(options.url));
11
- }
1
+ /**
2
+ * Detect a tileJSON or templated tile URL when inline data is absent.
3
+ *
4
+ * @param {Object} options Source options.
5
+ *
6
+ * @returns {boolean} Whether the options identify a vector tile source.
7
+ */
8
+ export function isVectorTileSource(options) {
9
+ return options.data === undefined && (options.tileJSON !== undefined ||
10
+ typeof options.url === 'string' && /\{[zxy]\}|%7B[zxy]%7D/i.test(options.url));
11
+ }
@@ -1,17 +1,17 @@
1
- import { L } from '../globals/L.js';
2
-
3
- /**
4
- * Check whether an anchor belongs to the given area tile.
5
- *
6
- * @param {L.Map} map Map used to project the anchor.
7
- * @param {Object} coords Tile coordinates, if the area is tiled.
8
- * @param {number} lon Anchor longitude.
9
- * @param {number} lat Anchor latitude.
10
- *
11
- * @returns {boolean} Whether the anchor belongs to the area.
12
- */
13
- export function matchesAreaTile(map, coords, lon, lat) {
14
- if (!coords) return true;
15
- const anchor = map.project(/* alloc */ new L.LatLng(lat, lon), coords.z);
16
- return Math.floor(anchor.x / 256) === coords.x && Math.floor(anchor.y / 256) === coords.y;
17
- }
1
+ import { L } from '../globals/L.js';
2
+
3
+ /**
4
+ * Check whether an anchor belongs to the given area tile.
5
+ *
6
+ * @param {L.Map} map Map used to project the anchor.
7
+ * @param {Object} coords Tile coordinates, if the area is tiled.
8
+ * @param {number} lon Anchor longitude.
9
+ * @param {number} lat Anchor latitude.
10
+ *
11
+ * @returns {boolean} Whether the anchor belongs to the area.
12
+ */
13
+ export function matchesAreaTile(map, coords, lon, lat) {
14
+ if (!coords) return true;
15
+ const anchor = map.project(/* alloc */ new L.LatLng(lat, lon), coords.z);
16
+ return Math.floor(anchor.x / 256) === coords.x && Math.floor(anchor.y / 256) === coords.y;
17
+ }
@@ -1,28 +1,28 @@
1
- import { areasByLayer } from '../weakmaps/areasByLayer.js';
2
- import { compareDistance } from '../utils/compareDistance.js';
3
-
4
- /**
5
- * Gather unstarted, unaborted source areas in order of distance from the map center.
6
- *
7
- * @param {Array<L.Layer>} layers Source layers.
8
- * @param {L.Map} map Map providing the view center and projection.
9
- *
10
- * @returns {Array<Object>} Pending layer and area entries with distances.
11
- */
12
- export function pendingSourceAreas(layers, map) {
13
- const pending = /* alloc */ [];
14
- let layer, area, center;
15
- for (layer of layers) {
16
- for (area of areasByLayer.get(layer).values()) {
17
- if (area.started || area.request.signal.aborted) continue;
18
- center = area.coords && map.project(map.getCenter(), area.coords.z).divideBy(256);
19
- pending.push(/* alloc */ {
20
- layer, area,
21
- distance: center
22
- ? Math.hypot(area.coords.x + 0.5 - center.x, area.coords.y + 0.5 - center.y) / 2 ** area.coords.z : 0,
23
- });
24
- }
25
- }
26
- pending.sort(compareDistance);
27
- return pending;
28
- }
1
+ import { areasByLayer } from '../weakmaps/areasByLayer.js';
2
+ import { compareDistance } from '../utils/compareDistance.js';
3
+
4
+ /**
5
+ * Gather unstarted, unaborted source areas in order of distance from the map center.
6
+ *
7
+ * @param {Array<L.Layer>} layers Source layers.
8
+ * @param {L.Map} map Map providing the view center and projection.
9
+ *
10
+ * @returns {Array<Object>} Pending layer and area entries with distances.
11
+ */
12
+ export function pendingSourceAreas(layers, map) {
13
+ const pending = /* alloc */ [];
14
+ let layer, area, center;
15
+ for (layer of layers) {
16
+ for (area of areasByLayer.get(layer).values()) {
17
+ if (area.started || area.request.signal.aborted) continue;
18
+ center = area.coords && map.project(map.getCenter(), area.coords.z).divideBy(256);
19
+ pending.push(/* alloc */ {
20
+ layer, area,
21
+ distance: center
22
+ ? Math.hypot(area.coords.x + 0.5 - center.x, area.coords.y + 0.5 - center.y) / 2 ** area.coords.z : 0,
23
+ });
24
+ }
25
+ }
26
+ pending.sort(compareDistance);
27
+ return pending;
28
+ }
@@ -1,34 +1,34 @@
1
- import { projectedTree } from '../projections/projectTreePoint.js';
2
- import { parseColor } from '../colors/parseColor.js';
3
- import { projectAreaPolygons } from './projectAreaPolygons.js';
4
-
5
- /**
6
- * Queue projected feature geometry and resolved style values for the geometry worker.
7
- *
8
- * @param {Object} context Area build context and job queue.
9
- * @param {Object} feature GeoJSON feature.
10
- * @param {number} lon Anchor longitude.
11
- * @param {number} lat Anchor latitude.
12
- * @param {Object} style Validated extrusion style.
13
- * @param {Object} baseColor Parsed feature color.
14
- */
15
- export function prepareAreaGeometryJob(context, feature, lon, lat, style, baseColor) {
16
- const geometry = feature.geometry;
17
- const polygons = projectAreaPolygons(context, geometry);
18
- const point = geometry.type === 'Point' ? projectedTree(context, lon, lat) : null;
19
- const nightLight = context.backend.options.nightLight;
20
- const crownColor = point ? parseColor(style.color ?? (nightLight ? undefined : 0x4f823b)) : baseColor;
21
- const trunkColor = point && !nightLight ? parseColor(style.trunkColor ?? 0x72513a) : null;
22
- context.jobs.push(/* alloc */ {
23
- point, polygons, baseColor: /* alloc */ { r: baseColor.r, g: baseColor.g, b: baseColor.b },
24
- support: feature.properties?.cod_ouvrag || `${lon},${lat}`,
25
- style: /* alloc */ {
26
- top: style.top, bottom: style.bottom ?? 0,
27
- color: /* alloc */ { r: crownColor.r, g: crownColor.g, b: crownColor.b },
28
- trunkColor: trunkColor ? /* alloc */ { r: trunkColor.r, g: trunkColor.g, b: trunkColor.b } : undefined,
29
- trunkRadius: style.trunkRadius, crownRadius: style.crownRadius,
30
- crownBottom: style.crownBottom, crownShape: style.crownShape,
31
- poleRadius: style.poleRadius, lightRadius: style.lightRadius, lightFlux: style.lightFlux,
32
- },
33
- });
34
- }
1
+ import { projectedTree } from '../projections/projectTreePoint.js';
2
+ import { parseColor } from '../colors/parseColor.js';
3
+ import { projectAreaPolygons } from './projectAreaPolygons.js';
4
+
5
+ /**
6
+ * Queue projected feature geometry and resolved style values for the geometry worker.
7
+ *
8
+ * @param {Object} context Area build context and job queue.
9
+ * @param {Object} feature GeoJSON feature.
10
+ * @param {number} lon Anchor longitude.
11
+ * @param {number} lat Anchor latitude.
12
+ * @param {Object} style Validated extrusion style.
13
+ * @param {Object} baseColor Parsed feature color.
14
+ */
15
+ export function prepareAreaGeometryJob(context, feature, lon, lat, style, baseColor) {
16
+ const geometry = feature.geometry;
17
+ const polygons = projectAreaPolygons(context, geometry);
18
+ const point = geometry.type === 'Point' ? projectedTree(context, lon, lat) : null;
19
+ const nightLight = context.backend.options.nightLight;
20
+ const crownColor = point ? parseColor(style.color ?? (nightLight ? undefined : 0x4f823b)) : baseColor;
21
+ const trunkColor = point && !nightLight ? parseColor(style.trunkColor ?? 0x72513a) : null;
22
+ context.jobs.push(/* alloc */ {
23
+ point, polygons, baseColor: /* alloc */ { r: baseColor.r, g: baseColor.g, b: baseColor.b },
24
+ support: feature.properties?.cod_ouvrag || `${lon},${lat}`,
25
+ style: /* alloc */ {
26
+ top: style.top, bottom: style.bottom ?? 0,
27
+ color: /* alloc */ { r: crownColor.r, g: crownColor.g, b: crownColor.b },
28
+ trunkColor: trunkColor ? /* alloc */ { r: trunkColor.r, g: trunkColor.g, b: trunkColor.b } : undefined,
29
+ trunkRadius: style.trunkRadius, crownRadius: style.crownRadius,
30
+ crownBottom: style.crownBottom, crownShape: style.crownShape,
31
+ poleRadius: style.poleRadius, lightRadius: style.lightRadius, lightFlux: style.lightFlux,
32
+ },
33
+ });
34
+ }
@@ -1,25 +1,25 @@
1
- import { projectRing } from '../projections/projectRing.js';
2
-
3
- /**
4
- * Project every ring of a polygon or multipolygon into the area coordinate system.
5
- *
6
- * @param {Object} context Area projection context.
7
- * @param {Object} geometry GeoJSON geometry.
8
- *
9
- * @returns {Array} Projected polygons, or an empty array for other geometry types.
10
- *
11
- * @throws {Error} If a polygon contains no rings.
12
- */
13
- export function projectAreaPolygons(context, geometry) {
14
- const rings = geometry.type === 'Polygon' ? /* alloc */ [geometry.coordinates]
15
- : geometry.type === 'MultiPolygon' ? geometry.coordinates : /* alloc */ [];
16
- const polygons = /* alloc */ [];
17
- let polygon, ring, paths;
18
- for (polygon of rings) {
19
- if (!polygon.length) throw /* alloc */ new Error('Empty GeoJSON polygon');
20
- paths = /* alloc */ [];
21
- for (ring of polygon) paths.push(projectRing(context, ring));
22
- polygons.push(paths);
23
- }
24
- return polygons;
25
- }
1
+ import { projectRing } from '../projections/projectRing.js';
2
+
3
+ /**
4
+ * Project every ring of a polygon or multipolygon into the area coordinate system.
5
+ *
6
+ * @param {Object} context Area projection context.
7
+ * @param {Object} geometry GeoJSON geometry.
8
+ *
9
+ * @returns {Array} Projected polygons, or an empty array for other geometry types.
10
+ *
11
+ * @throws {Error} If a polygon contains no rings.
12
+ */
13
+ export function projectAreaPolygons(context, geometry) {
14
+ const rings = geometry.type === 'Polygon' ? /* alloc */ [geometry.coordinates]
15
+ : geometry.type === 'MultiPolygon' ? geometry.coordinates : /* alloc */ [];
16
+ const polygons = /* alloc */ [];
17
+ let polygon, ring, paths;
18
+ for (polygon of rings) {
19
+ if (!polygon.length) throw /* alloc */ new Error('Empty GeoJSON polygon');
20
+ paths = /* alloc */ [];
21
+ for (ring of polygon) paths.push(projectRing(context, ring));
22
+ polygons.push(paths);
23
+ }
24
+ return polygons;
25
+ }
@@ -1,17 +1,17 @@
1
- import { kindByLayer } from '../weakmaps/kindByLayer.js';
2
-
3
- /**
4
- * Reattach a configured vector tile layer and emit its ready event.
5
- *
6
- * @param {L.Layer} layer Configured layer.
7
- *
8
- * @returns {L.Layer} The layer.
9
- */
10
- export function readyVectorTiles(layer) {
11
- const map = layer._map;
12
- map?.removeLayer(layer);
13
- kindByLayer.delete(layer);
14
- map?.addLayer(layer);
15
- layer.fire('ready');
16
- return layer;
17
- }
1
+ import { kindByLayer } from '../weakmaps/kindByLayer.js';
2
+
3
+ /**
4
+ * Reattach a configured vector tile layer and emit its ready event.
5
+ *
6
+ * @param {L.Layer} layer Configured layer.
7
+ *
8
+ * @returns {L.Layer} The layer.
9
+ */
10
+ export function readyVectorTiles(layer) {
11
+ const map = layer._map;
12
+ map?.removeLayer(layer);
13
+ kindByLayer.delete(layer);
14
+ map?.addLayer(layer);
15
+ layer.fire('ready');
16
+ return layer;
17
+ }
@@ -1,18 +1,18 @@
1
- import { L } from '../globals/L.js';
2
- import { underEntry } from '../layer-controls/underEntry.js';
3
- import { styleTimeControl } from './styleTimeControl.js';
4
-
5
- /**
6
- * Add the time control to a map and place it under its layer entry when available.
7
- *
8
- * @param {L.Map} map Map receiving the control.
9
- *
10
- * @returns {L.Control} The time control.
11
- */
12
- export function addTo(map) {
13
- L.Control.prototype.addTo.call(this, map);
14
- const container = this.getContainer();
15
- if (this.layer._map === map) underEntry(this.layer, container, styleTimeControl.bind(null, container));
16
- else styleTimeControl(container, false);
17
- return this;
18
- }
1
+ import { L } from '../globals/L.js';
2
+ import { underEntry } from '../layer-controls/underEntry.js';
3
+ import { styleTimeControl } from './styleTimeControl.js';
4
+
5
+ /**
6
+ * Add the time control to a map and place it under its layer entry when available.
7
+ *
8
+ * @param {L.Map} map Map receiving the control.
9
+ *
10
+ * @returns {L.Control} The time control.
11
+ */
12
+ export function addTo(map) {
13
+ L.Control.prototype.addTo.call(this, map);
14
+ const container = this.getContainer();
15
+ if (this.layer._map === map) underEntry(this.layer, container, styleTimeControl.bind(null, container));
16
+ else styleTimeControl(container, false);
17
+ return this;
18
+ }
@@ -1,12 +1,12 @@
1
- import { controlByLayer } from '../weakmaps/controlByLayer.js';
2
-
3
- /**
4
- * Add the control associated with this time layer to a map.
5
- *
6
- * @param {L.Map} map Map receiving the control.
7
- *
8
- * @returns {L.Control} The associated time control.
9
- */
10
- export function addTimeLayer(map) {
11
- return controlByLayer.get(this).addTo(map);
12
- }
1
+ import { controlByLayer } from '../weakmaps/controlByLayer.js';
2
+
3
+ /**
4
+ * Add the control associated with this time layer to a map.
5
+ *
6
+ * @param {L.Map} map Map receiving the control.
7
+ *
8
+ * @returns {L.Control} The associated time control.
9
+ */
10
+ export function addTimeLayer(map) {
11
+ return controlByLayer.get(this).addTo(map);
12
+ }
@@ -1,18 +1,18 @@
1
- import { controlByLayer } from '../weakmaps/controlByLayer.js';
2
- import { kindByLayer } from '../weakmaps/kindByLayer.js';
3
- import { L } from '../globals/L.js';
4
- import { addTimeLayer } from './addTimeLayer.js';
5
- import { removeTimeLayer } from './removeTimeLayer.js';
6
-
7
- /**
8
- * Apply time-control options and create its associated time layer.
9
- *
10
- * @param {Object} options Time control options.
11
- */
12
- export function initialize(options) {
13
- L.Util.setOptions(this, options);
14
- this.live = true;
15
- this.layer = /* alloc */ new L.Layer();
16
- controlByLayer.set(this.layer, this);
17
- kindByLayer.set(this.layer, 'time');
18
- }
1
+ import { controlByLayer } from '../weakmaps/controlByLayer.js';
2
+ import { kindByLayer } from '../weakmaps/kindByLayer.js';
3
+ import { L } from '../globals/L.js';
4
+ import { addTimeLayer } from './addTimeLayer.js';
5
+ import { removeTimeLayer } from './removeTimeLayer.js';
6
+
7
+ /**
8
+ * Apply time-control options and create its associated time layer.
9
+ *
10
+ * @param {Object} options Time control options.
11
+ */
12
+ export function initialize(options) {
13
+ L.Util.setOptions(this, options);
14
+ this.live = true;
15
+ this.layer = /* alloc */ new L.Layer();
16
+ controlByLayer.set(this.layer, this);
17
+ kindByLayer.set(this.layer, 'time');
18
+ }
@@ -1,37 +1,37 @@
1
- import { timeControlByMap } from '../weakmaps/timeControlByMap.js';
2
- import { sunlightByControl } from '../weakmaps/sunlightByControl.js';
3
- import { sunByMap } from '../weakmaps/sunByMap.js';
4
- import { createSun } from './createSun.js';
5
- import { tickSun } from './tickSun.js';
6
-
7
- /**
8
- * Attach sunlight state and update listeners for a time control.
9
- *
10
- * @param {L.Control} control Time control being added.
11
- * @param {L.Map} map Map receiving the control.
12
- *
13
- * @returns {HTMLElement} Time-control container.
14
- *
15
- * @throws {Error} If another time control is already active on the map.
16
- */
17
- export function onAddSun(control, map) {
18
- let state = sunByMap.get(map);
19
- if (state?.control && state.control !== control) {
20
- control._map = null;
21
- if (control.layer._map === map) map.removeLayer(control.layer);
22
- throw /* alloc */ new Error('Only one Time control can be active per map');
23
- }
24
- if (!state) {
25
- state = createSun(map);
26
- sunByMap.set(map, state);
27
- }
28
- state.control = control;
29
- state.originalSky = map.getContainer().style.getPropertyValue('--leaflet-sky-background');
30
- timeControlByMap.set(map, control);
31
- sunlightByControl.set(control, state);
32
- state.update();
33
- state.timer = setInterval(tickSun, 60000, state);
34
- map.on('moveend', state.update);
35
- map.on('move rotate pitch resize', state.updateSky);
36
- return state.container;
37
- }
1
+ import { timeControlByMap } from '../weakmaps/timeControlByMap.js';
2
+ import { sunlightByControl } from '../weakmaps/sunlightByControl.js';
3
+ import { sunByMap } from '../weakmaps/sunByMap.js';
4
+ import { createSun } from './createSun.js';
5
+ import { tickSun } from './tickSun.js';
6
+
7
+ /**
8
+ * Attach sunlight state and update listeners for a time control.
9
+ *
10
+ * @param {L.Control} control Time control being added.
11
+ * @param {L.Map} map Map receiving the control.
12
+ *
13
+ * @returns {HTMLElement} Time-control container.
14
+ *
15
+ * @throws {Error} If another time control is already active on the map.
16
+ */
17
+ export function onAddSun(control, map) {
18
+ let state = sunByMap.get(map);
19
+ if (state?.control && state.control !== control) {
20
+ control._map = null;
21
+ if (control.layer._map === map) map.removeLayer(control.layer);
22
+ throw /* alloc */ new Error('Only one Time control can be active per map');
23
+ }
24
+ if (!state) {
25
+ state = createSun(map);
26
+ sunByMap.set(map, state);
27
+ }
28
+ state.control = control;
29
+ state.originalSky = map.getContainer().style.getPropertyValue('--leaflet-sky-background');
30
+ timeControlByMap.set(map, control);
31
+ sunlightByControl.set(control, state);
32
+ state.update();
33
+ state.timer = setInterval(tickSun, 60000, state);
34
+ map.on('moveend', state.update);
35
+ map.on('move rotate pitch resize', state.updateSky);
36
+ return state.container;
37
+ }
@@ -1,12 +1,12 @@
1
- import { onAddSun } from './onAddSun.js';
2
-
3
- /**
4
- * Attach this time control's sunlight state to the map.
5
- *
6
- * @param {L.Map} map Map receiving the control.
7
- *
8
- * @returns {HTMLElement} Time-control container.
9
- */
10
- export function onAdd(map) {
11
- return onAddSun(this, map);
12
- }
1
+ import { onAddSun } from './onAddSun.js';
2
+
3
+ /**
4
+ * Attach this time control's sunlight state to the map.
5
+ *
6
+ * @param {L.Map} map Map receiving the control.
7
+ *
8
+ * @returns {HTMLElement} Time-control container.
9
+ */
10
+ export function onAdd(map) {
11
+ return onAddSun(this, map);
12
+ }
@@ -1,10 +1,10 @@
1
- import { sunlightByControl } from '../weakmaps/sunlightByControl.js';
2
- import { removeSun } from './removeSun.js';
3
-
4
- /** Remove the current time control's sunlight state and association. */
5
- export function onRemoveSun() {
6
- const sunlight = sunlightByControl.get(this);
7
- if (!sunlight) return;
8
- removeSun(sunlight);
9
- sunlightByControl.delete(this);
10
- }
1
+ import { sunlightByControl } from '../weakmaps/sunlightByControl.js';
2
+ import { removeSun } from './removeSun.js';
3
+
4
+ /** Remove the current time control's sunlight state and association. */
5
+ export function onRemoveSun() {
6
+ const sunlight = sunlightByControl.get(this);
7
+ if (!sunlight) return;
8
+ removeSun(sunlight);
9
+ sunlightByControl.delete(this);
10
+ }
@@ -1,25 +1,25 @@
1
- import { sunlightByMap } from '../weakmaps/sunlightByMap.js';
2
- import { timeControlByMap } from '../weakmaps/timeControlByMap.js';
3
- import { sunByMap } from '../weakmaps/sunByMap.js';
4
- import { render } from './requestSunlightRender.js';
5
- import { updateSky } from './updateSky.js';
6
-
7
- /**
8
- * Remove sunlight listeners, celestial discs and map state, then redraw.
9
- *
10
- * @param {Object} state Sunlight and time-control state.
11
- */
12
- export function removeSun(state) {
13
- const { map, timer, sunDisc, moonDisc } = state;
14
- const shared = sunByMap.get(map);
15
- clearInterval(timer);
16
- timeControlByMap.delete(map);
17
- map.fire('simulationtimechange', /* alloc */ { time: null, live: false });
18
- map.off('moveend', state.update);
19
- map.off('move rotate pitch resize', state.updateSky);
20
- sunlightByMap.delete(map);
21
- updateSky(state);
22
- sunDisc.remove(); moonDisc.remove();
23
- render(map);
24
- if (shared === state) shared.control = null;
25
- }
1
+ import { sunlightByMap } from '../weakmaps/sunlightByMap.js';
2
+ import { timeControlByMap } from '../weakmaps/timeControlByMap.js';
3
+ import { sunByMap } from '../weakmaps/sunByMap.js';
4
+ import { render } from './requestSunlightRender.js';
5
+ import { updateSky } from './updateSky.js';
6
+
7
+ /**
8
+ * Remove sunlight listeners, celestial discs and map state, then redraw.
9
+ *
10
+ * @param {Object} state Sunlight and time-control state.
11
+ */
12
+ export function removeSun(state) {
13
+ const { map, timer, sunDisc, moonDisc } = state;
14
+ const shared = sunByMap.get(map);
15
+ clearInterval(timer);
16
+ timeControlByMap.delete(map);
17
+ map.fire('simulationtimechange', /* alloc */ { time: null, live: false });
18
+ map.off('moveend', state.update);
19
+ map.off('move rotate pitch resize', state.updateSky);
20
+ sunlightByMap.delete(map);
21
+ updateSky(state);
22
+ sunDisc.remove(); moonDisc.remove();
23
+ render(map);
24
+ if (shared === state) shared.control = null;
25
+ }
@@ -1,14 +1,14 @@
1
- import { L } from '../globals/L.js';
2
-
3
- /**
4
- * Remove the time layer if attached, otherwise remove this control directly.
5
- *
6
- * @returns {L.Control} The time control.
7
- */
8
- export function remove() {
9
- if (this._map?.hasLayer(this.layer)) {
10
- this._map.removeLayer(this.layer);
11
- return this;
12
- }
13
- return L.Control.prototype.remove.call(this);
14
- }
1
+ import { L } from '../globals/L.js';
2
+
3
+ /**
4
+ * Remove the time layer if attached, otherwise remove this control directly.
5
+ *
6
+ * @returns {L.Control} The time control.
7
+ */
8
+ export function remove() {
9
+ if (this._map?.hasLayer(this.layer)) {
10
+ this._map.removeLayer(this.layer);
11
+ return this;
12
+ }
13
+ return L.Control.prototype.remove.call(this);
14
+ }
@@ -1,11 +1,11 @@
1
- import { controlByLayer } from '../weakmaps/controlByLayer.js';
2
- import { L } from '../globals/L.js';
3
-
4
- /**
5
- * Remove the control associated with this time layer.
6
- *
7
- * @returns {L.Control} The associated time control.
8
- */
9
- export function removeTimeLayer() {
10
- return L.Control.prototype.remove.call(controlByLayer.get(this));
11
- }
1
+ import { controlByLayer } from '../weakmaps/controlByLayer.js';
2
+ import { L } from '../globals/L.js';
3
+
4
+ /**
5
+ * Remove the control associated with this time layer.
6
+ *
7
+ * @returns {L.Control} The associated time control.
8
+ */
9
+ export function removeTimeLayer() {
10
+ return L.Control.prototype.remove.call(controlByLayer.get(this));
11
+ }