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.
- package/README.md +1 -1
- package/dist/leaflet-city-mapper-src.js.map +1 -1
- package/dist/leaflet-city-mapper-worker-src.js.map +1 -1
- package/dist/leaflet-city-mapper-worker.js.map +1 -1
- package/dist/leaflet-city-mapper.js.map +1 -1
- package/libs/leaflet-lens.js +151 -151
- package/libs/leaflet.js +3 -3
- package/libs/openlayers-bindings.js +1129 -1129
- package/libs/openlayers-bindings.min.js.map +1 -1
- package/package.json +2 -4
- package/src/animations/cancelCameraAnimation.js +19 -19
- package/src/animations/mapStopPitchBearingAnimation.js +10 -10
- package/src/animations/scheduleCameraAnimation.js +15 -15
- package/src/animations/scheduleMarkerPan.js +14 -14
- package/src/animations/updateZoomCamera.js +25 -25
- package/src/archives/findDirectoryEntry.js +17 -17
- package/src/archives/findTile.js +45 -45
- package/src/archives/getDirectoryEntries.js +30 -30
- package/src/archives/getTileData.js +26 -26
- package/src/archives/readArchiveRange.js +48 -48
- package/src/astronomy/solarTime.js +21 -21
- package/src/camera/cameraMapReady.js +9 -9
- package/src/camera/cleanupCameraMap.js +13 -13
- package/src/camera/constrainCameraToBounds.js +3 -3
- package/src/camera/createSceneCamera.js +25 -25
- package/src/camera/getBearing.js +10 -10
- package/src/camera/getPitch.js +10 -10
- package/src/camera/mapGetBoundsCenterZoom.js +14 -14
- package/src/camera/mapLimitOffset.js +17 -17
- package/src/camera/mapPanBy.js +14 -14
- package/src/camera/setBearing.js +13 -13
- package/src/camera/setPitch.js +13 -13
- package/src/cog/decodeCogTile.js +37 -37
- package/src/cog/finiteCogValues.js +12 -12
- package/src/cog/getCogAssetEntry.js +26 -26
- package/src/cog/getCogBase.js +22 -22
- package/src/cog/getCogHeader.js +10 -10
- package/src/cog/getCogProfile.js +25 -25
- package/src/cog/getCogTile.js +25 -25
- package/src/cog/getColorTile.js +38 -38
- package/src/cog/getElevationTile.js +29 -29
- package/src/cog/hasCogProjection.js +16 -16
- package/src/cog/initCog.js +13 -13
- package/src/cog/invalidCogFullResponse.js +10 -10
- package/src/cog/openCog.js +40 -40
- package/src/cog/openCogAsset.js +22 -22
- package/src/cog/readCog.js +39 -39
- package/src/cog/readCogBlock.js +19 -19
- package/src/cog/readCogBody.js +30 -30
- package/src/cog/readCogDirectories.js +32 -32
- package/src/cog/readCogDirectory.js +34 -34
- package/src/cog/readCogLevel.js +36 -36
- package/src/cog/readCogTag.js +28 -28
- package/src/cog/validCogDimensions.js +15 -15
- package/src/cog/validCogEncoding.js +18 -18
- package/src/cog/validCogGeoArrays.js +17 -17
- package/src/cog/validCogGrid.js +22 -22
- package/src/cog/validCogTileCoordinates.js +13 -13
- package/src/cog/validateCogContainer.js +17 -17
- package/src/cog/validateCogContentRange.js +18 -18
- package/src/cog/validateCogOffsets.js +19 -19
- package/src/cog/validateCogRange.js +16 -16
- package/src/cog/validateCogResponse.js +26 -26
- package/src/collision/collectIntersections.js +41 -41
- package/src/collision/hiddenLightHit.js +19 -19
- package/src/collision/indexTriangle.js +18 -18
- package/src/collision/insideMesh.js +47 -47
- package/src/collision/insideWalker.js +52 -52
- package/src/collision/intersectMeshes.js +40 -40
- package/src/collision/localRay.js +31 -31
- package/src/collision/mergeHits.js +19 -19
- package/src/collision/rayBounds.js +28 -28
- package/src/collision/readTriangle.js +32 -32
- package/src/collision/trafficCollision.js +23 -23
- package/src/collision/transformTriangle.js +18 -18
- package/src/collision/triangleDistance.js +34 -34
- package/src/collision/vertexCount.js +11 -11
- package/src/collision/worldHit.js +30 -30
- package/src/controls/acceptPitchDrag.js +10 -10
- package/src/controls/acceptRotateDrag.js +9 -9
- package/src/controls/addCameraHandler.js +18 -18
- package/src/controls/adjustCameraDrag.js +13 -13
- package/src/controls/cameraDragContextMenu.js +12 -12
- package/src/controls/cameraDragEnd.js +10 -10
- package/src/controls/cameraDragMove.js +31 -31
- package/src/controls/changeCameraTouch.js +17 -17
- package/src/controls/compassOrientation.js +12 -12
- package/src/controls/compassRemoveHooks.js +2 -2
- package/src/controls/containerResizeRemoveHooks.js +2 -2
- package/src/controls/endCameraTouch.js +18 -18
- package/src/controls/failCompassPermission.js +10 -10
- package/src/controls/finishCameraDrag.js +14 -14
- package/src/controls/finishCompassPermission.js +24 -24
- package/src/controls/isEditableTarget.js +9 -9
- package/src/controls/loadCameraControls.js +18 -18
- package/src/controls/moveCameraTouch.js +34 -34
- package/src/controls/refreshRotateFocus.js +5 -5
- package/src/controls/removeCameraDrag.js +28 -28
- package/src/controls/resizeMap.js +7 -7
- package/src/controls/rotateButtonClick.js +16 -16
- package/src/controls/rotateButtonKeydown.js +20 -20
- package/src/controls/rotateControl.js +12 -12
- package/src/controls/shiftRotateRemoveHooks.js +2 -2
- package/src/controls/shiftRotateWheel.js +15 -15
- package/src/core/cameraMarkerOnDrag.js +16 -16
- package/src/core/constructLayer.js +16 -16
- package/src/core/extendLeafletClass.js +12 -12
- package/src/core/extendTerrainPixelBounds.js +41 -41
- package/src/core/layerAddInitHook.js +12 -12
- package/src/core/layerMergeOptions.js +14 -14
- package/src/core/markerInitInteraction.js +10 -10
- package/src/core/markerSetIcon.js +14 -14
- package/src/core/markerSetRotation.js +19 -19
- package/src/core/projectNativePath.js +30 -30
- package/src/core/redrawPath.js +11 -11
- package/src/core/removeLayer.js +26 -26
- package/src/core/setRotation.js +12 -12
- package/src/core/whenReady.js +14 -14
- package/src/geometry/addBridges.js +36 -36
- package/src/geometry/addGeneratedTriangle.js +10 -10
- package/src/geometry/appendAreaTriangle.js +32 -32
- package/src/geometry/appendNativeTriangle.js +17 -17
- package/src/geometry/appendRouteDash.js +33 -33
- package/src/geometry/appendRouteSegment.js +28 -28
- package/src/geometry/assembleAreaGeometry.js +48 -48
- package/src/geometry/bridgeEdge.js +18 -18
- package/src/geometry/bridgeFaces.js +22 -22
- package/src/geometry/bridgePaths.js +19 -19
- package/src/geometry/bridgePolygon.js +37 -37
- package/src/geometry/bridgeSides.js +18 -18
- package/src/geometry/buildProjectedPoint.js +32 -32
- package/src/geometry/buildProjectedPolygon.js +34 -34
- package/src/geometry/circleAt.js +20 -20
- package/src/geometry/circleGeometry.js +41 -41
- package/src/geometry/createModelGeometry.js +44 -44
- package/src/geometry/crossVector.js +15 -15
- package/src/geometry/dashValues.js +23 -23
- package/src/geometry/dashedSegment.js +33 -33
- package/src/geometry/diskAt.js +18 -18
- package/src/geometry/emitter.js +18 -18
- package/src/geometry/fillNativePolygon.js +28 -28
- package/src/geometry/generateTreeGeometry.js +18 -18
- package/src/geometry/indexBridge.js +36 -36
- package/src/geometry/instanceAreaGeometry.js +37 -37
- package/src/geometry/line.js +28 -28
- package/src/geometry/lineJoin.js +35 -35
- package/src/geometry/markerImageBounds.js +20 -20
- package/src/geometry/meshShadowBounds.js +33 -33
- package/src/geometry/offsetBelowGround.js +10 -10
- package/src/geometry/quad.js +23 -23
- package/src/geometry/restoreGeometry.js +29 -29
- package/src/geometry/roofCoverage.js +33 -33
- package/src/geometry/roofFootprint.js +40 -40
- package/src/geometry/samePoint.js +11 -11
- package/src/geometry/segment.js +32 -32
- package/src/geometry/subtractRoofTile.js +28 -28
- package/src/geometry/terrainBuffers.js +36 -36
- package/src/geometry/terrainTileGeometry.js +28 -28
- package/src/geometry/validateTree.js +19 -19
- package/src/globals/L.js +6 -6
- package/src/globals/cameraFov.js +8 -8
- package/src/globals/cogTags.js +6 -6
- package/src/globals/colorTexture.js +11 -11
- package/src/globals/cosObliquity.js +8 -8
- package/src/globals/degrees.js +6 -6
- package/src/globals/earthCirc.js +6 -6
- package/src/globals/geometryWorkerUrl.js +8 -8
- package/src/globals/halfRadians.js +6 -6
- package/src/globals/lampDirections.js +13 -13
- package/src/globals/layerControlAddItem.js +8 -8
- package/src/globals/leafletLayer.js +8 -8
- package/src/globals/lightScale.js +6 -6
- package/src/globals/mvtTextDecoder.js +6 -6
- package/src/globals/nativeScalableStyleKeys.js +6 -6
- package/src/globals/sinObliquity.js +8 -8
- package/src/globals/tau.js +6 -6
- package/src/globals/vectorStyleNamedColors.js +13 -13
- package/src/globals/vectorTileEvents.js +6 -6
- package/src/globals/workerCogSource.js +6 -6
- package/src/gpu/initializeRendererResources.js +39 -39
- package/src/gpu/initializeSharedRenderer.js +59 -59
- package/src/gpu/mountRenderer.js +25 -25
- package/src/layer-controls/layerControlInputId.js +18 -18
- package/src/layer-controls/layerCountTitle.js +16 -16
- package/src/layer-controls/placeEntryElement.js +29 -29
- package/src/layer-controls/renderLayerCount.js +28 -28
- package/src/lighting/visitLightCells.js +26 -26
- package/src/lighting/writeLightCell.js +14 -14
- package/src/materials/createProgramLayout.js +44 -44
- package/src/materials/createProgramUniforms.js +25 -25
- package/src/materials/modelMaterialFor.js +29 -29
- package/src/materials/prepareMeshCutout.js +21 -21
- package/src/materials/terrainRasterProgram.js +65 -65
- package/src/materials/validateRoofMaterial.js +17 -17
- package/src/models/applyModelTransform.js +18 -18
- package/src/models/buildModelNodes.js +24 -24
- package/src/models/createModelContext.js +24 -24
- package/src/models/loadBuffer.js +16 -16
- package/src/models/loadModelResources.js +22 -22
- package/src/models/normalizeAccessor.js +21 -21
- package/src/models/prepareModel.js +29 -29
- package/src/models/prepareModelGeometry.js +35 -35
- package/src/models/prepareModelPrimitive.js +25 -25
- package/src/models/readAccessorValue.js +16 -16
- package/src/models/readModelAttributes.js +32 -32
- package/src/models/readModelIndices.js +28 -28
- package/src/models/readSparseAccessor.js +31 -31
- package/src/models/releaseModelResources.js +15 -15
- package/src/mvt/addMvtCrossings.js +23 -23
- package/src/mvt/appendMvtBandTriangles.js +42 -42
- package/src/mvt/appendMvtCoordinates.js +20 -20
- package/src/mvt/appendMvtPolygonTriangles.js +29 -29
- package/src/mvt/beginMvtPath.js +19 -19
- package/src/mvt/closeMvtPath.js +16 -16
- package/src/mvt/collectMvtEdges.js +29 -29
- package/src/mvt/createMvtReader.js +14 -14
- package/src/mvt/decodeVectorTile.js +39 -39
- package/src/mvt/expectMvtWire.js +11 -11
- package/src/mvt/finishMvtPath.js +14 -14
- package/src/mvt/finiteMvtCoordinate.js +14 -14
- package/src/mvt/groupMvtPolygons.js +35 -35
- package/src/mvt/isMvtFallbackError.js +13 -13
- package/src/mvt/mergeMvtActiveEdges.js +18 -18
- package/src/mvt/mvtEdgeX.js +12 -12
- package/src/mvt/mvtPathsVertices.js +15 -15
- package/src/mvt/mvtPolygonPaths.js +19 -19
- package/src/mvt/numericMvtValue.js +11 -11
- package/src/mvt/readMvtFeature.js +46 -46
- package/src/mvt/readMvtField.js +17 -17
- package/src/mvt/readMvtGeometry.js +42 -42
- package/src/mvt/readMvtInteger.js +22 -22
- package/src/mvt/readMvtKnownValue.js +30 -30
- package/src/mvt/readMvtLayer.js +40 -40
- package/src/mvt/readMvtMessage.js +18 -18
- package/src/mvt/readMvtNumber.js +18 -18
- package/src/mvt/readMvtNumbers.js +18 -18
- package/src/mvt/readMvtString.js +14 -14
- package/src/mvt/readMvtValue.js +29 -29
- package/src/mvt/skipMvtField.js +22 -22
- package/src/mvt/sortMvtActiveEdges.js +20 -20
- package/src/mvt/sortedMvtLevels.js +29 -29
- package/src/mvt/takeMvtBytes.js +18 -18
- package/src/mvt/tessellateVectorRings.js +26 -26
- package/src/mvt/triangulateVectorRings.js +23 -23
- package/src/native/beforeNativeRender.js +21 -21
- package/src/native/bypassNativeEvent.js +21 -21
- package/src/native/canScaleNativeStyle.js +26 -26
- package/src/native/compareNativeHits.js +10 -10
- package/src/native/createNativeMesh.js +46 -46
- package/src/native/forwardNativeError.js +8 -8
- package/src/native/getGridTerrainTile.js +47 -47
- package/src/native/gridTerrainElevation.js +34 -34
- package/src/native/isCurrentNativeLayer.js +11 -11
- package/src/native/loadGridTerrain.js +36 -36
- package/src/native/nativeEventSource.js +27 -27
- package/src/native/nativeProgram.js +28 -28
- package/src/native/nativeTerrainElevation.js +27 -27
- package/src/native/nativeVectorGeometry.js +30 -30
- package/src/native/orderNativeGridLayer.js +20 -20
- package/src/native/prepareGridTerrainRequests.js +23 -23
- package/src/native/pruneNativeResources.js +25 -25
- package/src/native/readyNativeGPU.js +13 -13
- package/src/native/rejectNativeReady.js +2 -2
- package/src/native/removeNativeEvents.js +20 -20
- package/src/native/resolveNativeReady.js +2 -2
- package/src/native/restoreNativeEvents.js +8 -8
- package/src/native/retainGridTerrain.js +15 -15
- package/src/native/styleNativeMesh.js +20 -20
- package/src/native/syncGridTile.js +28 -28
- package/src/native/syncImageOverlay.js +13 -13
- package/src/native/syncNativeStrokeAnchors.js +18 -18
- package/src/native/syncNativeStrokeZoom.js +34 -34
- package/src/native/syncTerrainGridTile.js +38 -38
- package/src/native/terrainGridMesh.js +47 -47
- package/src/native/updateNativeHover.js +15 -15
- package/src/native/updateNativeStrokeRadius.js +14 -14
- package/src/picking/hitColliderCell.js +29 -29
- package/src/picking/validateCameraInverse.js +15 -15
- package/src/projections/displayContainerPoint.js +32 -32
- package/src/projections/projectBridgePoint.js +17 -17
- package/src/projections/toPoint.js +13 -13
- package/src/projections/transformZoomAnimationPoint.js +8 -8
- package/src/projections/verticalGroundY.js +14 -14
- package/src/raster/rasterTileRange.js +32 -32
- package/src/raster/retainRasterTiles.js +21 -21
- package/src/rendering/collectVisibleMesh.js +48 -48
- package/src/rendering/compareMeshDepth.js +14 -14
- package/src/rendering/drawPipeline.js +44 -44
- package/src/rendering/nativeStrokeExpansion.js +11 -11
- package/src/rendering/prepareFrameBuffer.js +24 -24
- package/src/rendering/prepareMeshUniforms.js +36 -36
- package/src/rendering/revealRoofMesh.js +43 -43
- package/src/scene/addSceneLayer.js +24 -24
- package/src/scene/callLayer.js +34 -34
- package/src/scene/createLayer.js +13 -13
- package/src/scene/getLocation.js +12 -12
- package/src/scene/isNativeLayer.js +19 -19
- package/src/scene/removeSceneLayer.js +22 -22
- package/src/scene/reportLayerError.js +9 -9
- package/src/shaders/materialBaseShader.js +26 -26
- package/src/shaders/materialSurfaceShader.js +60 -60
- package/src/shaders/materialVertexShader.js +89 -89
- package/src/shaders/nativeStrokeShader.js +13 -13
- package/src/shaders/roofVertexShader.js +16 -16
- package/src/shadows/shadowMeshMatches.js +19 -19
- package/src/sources/buildAreaFeatures.js +23 -23
- package/src/sources/extrusionStyle.js +21 -21
- package/src/sources/featureAnchor.js +21 -21
- package/src/sources/groundOffset.js +9 -9
- package/src/sources/initVectorTiles.js +21 -21
- package/src/sources/isVectorTileSource.js +11 -11
- package/src/sources/matchesAreaTile.js +17 -17
- package/src/sources/pendingSourceAreas.js +28 -28
- package/src/sources/prepareAreaGeometryJob.js +34 -34
- package/src/sources/projectAreaPolygons.js +25 -25
- package/src/sources/readyVectorTiles.js +17 -17
- package/src/sunlight/addTimeControlToMap.js +18 -18
- package/src/sunlight/addTimeLayer.js +12 -12
- package/src/sunlight/initializeTimeControl.js +18 -18
- package/src/sunlight/onAddSun.js +37 -37
- package/src/sunlight/onAddTimeControl.js +12 -12
- package/src/sunlight/onRemoveSun.js +10 -10
- package/src/sunlight/removeSun.js +25 -25
- package/src/sunlight/removeTimeControl.js +14 -14
- package/src/sunlight/removeTimeLayer.js +11 -11
- package/src/sunlight/requestSunlightRender.js +12 -12
- package/src/sunlight/styleTimeControl.js +13 -13
- package/src/sunlight/tickSun.js +10 -10
- package/src/sunlight/updateCelestialDisc.js +23 -23
- package/src/sunlight/updateSun.js +44 -44
- package/src/sunlight/useLiveTime.js +11 -11
- package/src/sunlight/useSelectedTime.js +26 -26
- package/src/terrain/applyTerrain.js +30 -30
- package/src/terrain/copyTerrainTile.js +20 -20
- package/src/terrain/loadReadyTerrain.js +6 -6
- package/src/terrain/mapElevationOf.js +19 -19
- package/src/terrain/readBridges.js +13 -13
- package/src/terrain/readyTerrainOf.js +14 -14
- package/src/terrain/sampleTerrainTile.js +16 -16
- package/src/terrain/terrainTileQueue.js +34 -34
- package/src/textures/addImageState.js +13 -13
- package/src/textures/bindMeshTextures.js +57 -57
- package/src/textures/collectRoofTiles.js +23 -23
- package/src/textures/loadModelImage.js +29 -29
- package/src/textures/modelTextureFor.js +47 -47
- package/src/textures/prepareMeshTextures.js +31 -31
- package/src/textures/removeImageState.js +13 -13
- package/src/textures/resizeRoofTexture.js +32 -32
- package/src/textures/restoreMaterialTextures.js +22 -22
- package/src/textures/updateRoofAtlas.js +29 -29
- package/src/textures/uploadMeshTexture.js +32 -32
- package/src/textures/uploadNativeImage.js +26 -26
- package/src/textures/uploadRoofTile.js +29 -29
- package/src/traffic/createTrafficMesh.js +17 -17
- package/src/traffic/disposeTrafficObject.js +19 -19
- package/src/traffic/failTraffic.js +12 -12
- package/src/traffic/failedTrafficLoad.js +10 -10
- package/src/traffic/fetchTrafficLanes.js +21 -21
- package/src/traffic/loadedTrafficLanes.js +21 -21
- package/src/traffic/locateTraffic.js +20 -20
- package/src/traffic/moveTraffic.js +21 -21
- package/src/traffic/readyTraffic.js +10 -10
- package/src/traffic/refreshTrafficTrips.js +42 -42
- package/src/traffic/routeColor.js +13 -13
- package/src/traffic/startTraffic.js +12 -12
- package/src/traffic/trafficNow.js +15 -15
- package/src/traffic/trafficStatusText.js +13 -13
- package/src/traffic/trafficStorage.js +13 -13
- package/src/traffic/updateTraffic.js +13 -13
- package/src/traffic/updateTrafficLights.js +23 -23
- package/src/traffic/updateTrafficPose.js +15 -15
- package/src/traffic/updateTrafficTerrain.js +15 -15
- package/src/traffic/uploadTrafficLanes.js +27 -27
- package/src/transforms/composeLocalTransform.js +23 -23
- package/src/transforms/transformNativePoint.js +19 -19
- package/src/transforms/worldMatrixChanged.js +26 -26
- package/src/triangulation/clipEars.js +32 -32
- package/src/triangulation/connectHole.js +30 -30
- package/src/triangulation/cross.js +12 -12
- package/src/triangulation/equal.js +11 -11
- package/src/triangulation/intersects.js +21 -21
- package/src/triangulation/mergeHoles.js +19 -19
- package/src/triangulation/on.js +13 -13
- package/src/triangulation/polygonRings.js +22 -22
- package/src/triangulation/validateArea.js +19 -19
- package/src/utils/compareDistance.js +11 -11
- package/src/utils/yieldTask.js +12 -12
- package/src/vector-style/appendQuotedStyleCharacter.js +30 -30
- package/src/vector-style/arrayContainsRange.js +18 -18
- package/src/vector-style/evaluateBoolean.js +31 -31
- package/src/vector-style/evaluateCoalesceOrCase.js +34 -34
- package/src/vector-style/evaluateComparison.js +29 -29
- package/src/vector-style/evaluateIExpression.js +21 -21
- package/src/vector-style/evaluateInput.js +16 -16
- package/src/vector-style/evaluateInterpolate.js +36 -36
- package/src/vector-style/evaluateMatch.js +21 -21
- package/src/vector-style/evaluateMath.js +26 -26
- package/src/vector-style/evaluateMembership.js +29 -29
- package/src/vector-style/evaluateNegation.js +26 -26
- package/src/vector-style/evaluatePrimitive.js +21 -21
- package/src/vector-style/evaluateStep.js +20 -20
- package/src/vector-style/evaluateStyle.js +43 -43
- package/src/vector-style/evaluateToExpression.js +27 -27
- package/src/vector-style/fillVectorPaint.js +26 -26
- package/src/vector-style/lineVectorPaint.js +31 -31
- package/src/vector-style/parseFunctionalColor.js +23 -23
- package/src/vector-style/parseHexColor.js +20 -20
- package/src/vector-style/parseVectorStyle.js +20 -20
- package/src/vector-style/readPaintValue.js +17 -17
- package/src/vector-style/removeTrailingCommas.js +19 -19
- package/src/vector-style/scaleDashArray.js +25 -25
- package/src/vector-style/skipStyleComment.js +20 -20
- package/src/vector-style/stripStyleComments.js +28 -28
- package/src/vector-style/styleColor.js +18 -18
- package/src/vector-style/validateVectorLayers.js +18 -18
- package/src/vector-style/vectorPaint.js +17 -17
- package/src/vector-style/visibleStyle.js +16 -16
- package/src/vector-tiles/appendVectorBatch.js +34 -34
- package/src/vector-tiles/attachVectorTileBatch.js +25 -25
- package/src/vector-tiles/attachVectorTileBatches.js +26 -26
- package/src/vector-tiles/compareVectorLabelPriority.js +11 -11
- package/src/vector-tiles/compareVectorTileDistance.js +11 -11
- package/src/vector-tiles/createVectorLabel.js +37 -37
- package/src/vector-tiles/forwardVectorTileError.js +10 -10
- package/src/vector-tiles/loadVectorSprite.js +14 -14
- package/src/vector-tiles/loadVectorTile.js +45 -45
- package/src/vector-tiles/onVectorTileAdd.js +44 -44
- package/src/vector-tiles/onVectorTileMessage.js +15 -15
- package/src/vector-tiles/onVectorTileRemove.js +25 -25
- package/src/vector-tiles/onVectorTileWorkerError.js +16 -16
- package/src/vector-tiles/paintVectorTileBatch.js +18 -18
- package/src/vector-tiles/prepareVectorLabel.js +34 -34
- package/src/vector-tiles/prepareVectorStyleLayer.js +38 -38
- package/src/vector-tiles/prepareVectorTile.js +29 -29
- package/src/vector-tiles/projectVectorPaths.js +25 -25
- package/src/vector-tiles/projectVectorPoint.js +15 -15
- package/src/vector-tiles/projectVectorTriangles.js +28 -28
- package/src/vector-tiles/pruneVectorTiles.js +14 -14
- package/src/vector-tiles/pumpVectorTiles.js +21 -21
- package/src/vector-tiles/readTileJSON.js +27 -27
- package/src/vector-tiles/readVectorStyle.js +28 -28
- package/src/vector-tiles/refreshVectorTiles.js +8 -8
- package/src/vector-tiles/reserveVectorLabelCells.js +14 -14
- package/src/vector-tiles/retireVectorTileGroup.js +20 -20
- package/src/vector-tiles/revokeVectorWorkerUrl.js +14 -14
- package/src/vector-tiles/rotateVectorLabel.js +19 -19
- package/src/vector-tiles/rotateVectorLabels.js +9 -9
- package/src/vector-tiles/simplifyVectorPath.js +29 -29
- package/src/vector-tiles/updateVectorLabelMarker.js +36 -36
- package/src/vector-tiles/updateVectorLabelStyle.js +14 -14
- package/src/vector-tiles/updateVectorTileLabels.js +33 -33
- package/src/vector-tiles/updateVectorTilePaint.js +25 -25
- package/src/vector-tiles/updateVectorTiles.js +32 -32
- package/src/vector-tiles/validateVectorTileZooms.js +15 -15
- package/src/vector-tiles/vectorFeaturePaint.js +25 -25
- package/src/vector-tiles/vectorFeaturePaths.js +26 -26
- package/src/vector-tiles/vectorFeatureZoom.js +18 -18
- package/src/vector-tiles/vectorLabelAnchors.js +31 -31
- package/src/vector-tiles/vectorLabelCandidates.js +18 -18
- package/src/vector-tiles/vectorLabelCells.js +32 -32
- package/src/vector-tiles/vectorLabelIcon.js +38 -38
- package/src/vector-tiles/vectorLabelProperty.js +12 -12
- package/src/vector-tiles/vectorLabelText.js +19 -19
- package/src/vector-tiles/vectorSpriteIcon.js +19 -19
- package/src/vector-tiles/vectorStraightRun.js +23 -23
- package/src/vector-tiles/vectorStyleDependencies.js +22 -22
- package/src/vector-tiles/vectorStyleValue.js +16 -16
- package/src/vector-tiles/vectorStyleZoom.js +12 -12
- package/src/vector-tiles/vectorTileAwaited.js +17 -17
- package/src/vector-tiles/vectorTileOverlaps.js +12 -12
- package/src/vector-tiles/vectorTilePaint.js +18 -18
- package/src/vector-tiles/vectorTileSettings.js +27 -27
- package/src/vector-tiles/vectorTilesIdle.js +11 -11
- package/src/vector-tiles/vectorTolerance.js +11 -11
- package/src/vector-tiles/wrapVectorLabel.js +17 -17
- package/src/vehicles/boatModel.js +35 -35
- package/src/vehicles/busModel.js +13 -13
- package/src/vehicles/carModel.js +39 -39
- package/src/walk/initializeWalkControl.js +12 -12
- package/src/walk/isWalkBlocked.js +15 -15
- package/src/walk/landWalker.js +41 -41
- package/src/walk/moveWalker.js +37 -37
- package/src/walk/onAddWalkControl.js +40 -40
- package/src/walk/onRemoveWalkControl.js +17 -17
- package/src/walk/onWalkBlur.js +3 -3
- package/src/walk/onWalkTerrain.js +3 -3
- package/src/walk/resolveWalkerPosition.js +33 -33
- package/src/walk/stepWalkerHeight.js +18 -18
- package/src/walk/toggleWalking.js +4 -4
- package/src/walk/updateWalkerFrame.js +29 -29
- package/src/walk/updateWalkerView.js +31 -31
- package/src/weakmaps/cameraHandlersByMap.js +6 -6
- package/src/weakmaps/geometryWorkersByMap.js +6 -6
- package/src/weakmaps/nativeProgramsByRenderer.js +6 -6
- package/src/weakmaps/pathProjectionByMap.js +6 -6
- package/src/weakmaps/streamTerrainByLayer.js +6 -6
- package/src/weakmaps/streamTerrainByMap.js +6 -6
- package/src/weakmaps/sunByMap.js +6 -6
- package/src/weakmaps/vectorTileOptionsByLayer.js +6 -6
- package/src/weakmaps/vectorWorkerByLayer.js +6 -6
- package/src/weakmaps/walkByMap.js +6 -6
- package/src/weakmaps/workerMapByLayer.js +6 -6
- package/src/workers/acquireGeometryWorker.js +39 -39
- package/src/workers/buildAreaInWorker.js +24 -24
- package/src/workers/closeGeometryWorkers.js +16 -16
- package/src/workers/cogWorker.js +27 -27
- package/src/workers/createGeometryWorker.js +30 -30
- package/src/workers/geometryWorker.js +34 -34
- package/src/workers/getCogInWorker.js +18 -18
- package/src/workers/modelWorker.js +17 -17
- package/src/workers/openCogInWorker.js +22 -22
- package/src/workers/runSourceWorker.js +44 -44
- package/src/workers/settleGeometryWorker.js +16 -16
- package/src/workers/startGeometryWorker.js +23 -23
- package/src/workers/vectorTileWorker.js +15 -15
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { evaluateStyle } from './evaluateStyle.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Evaluate addition or unary/binary subtraction in a style expression.
|
|
5
|
-
*
|
|
6
|
-
* @param {string} op Arithmetic operator.
|
|
7
|
-
* @param {Array} args Expression operands.
|
|
8
|
-
* @param {Object} properties Feature properties.
|
|
9
|
-
* @param {number} zoom Current zoom.
|
|
10
|
-
*
|
|
11
|
-
* @returns {number} Arithmetic result.
|
|
12
|
-
*
|
|
13
|
-
* @throws {Error} If the operator is unsupported.
|
|
14
|
-
*/
|
|
15
|
-
export function evaluateMath(op, args, properties, zoom) {
|
|
16
|
-
let i = 0, sum = 0;
|
|
17
|
-
if (op === '+') {
|
|
18
|
-
for (i = 0; i < args.length; i++) sum += evaluateStyle(args[i], properties, zoom);
|
|
19
|
-
return sum;
|
|
20
|
-
}
|
|
21
|
-
if (op === '-') {
|
|
22
|
-
if (args.length === 1) return -evaluateStyle(args[0], properties, zoom);
|
|
23
|
-
return evaluateStyle(args[0], properties, zoom) - evaluateStyle(args[1], properties, zoom);
|
|
24
|
-
}
|
|
25
|
-
throw /* alloc */ new Error(`Unsupported vector style expression: ${op}`);
|
|
26
|
-
}
|
|
1
|
+
import { evaluateStyle } from './evaluateStyle.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Evaluate addition or unary/binary subtraction in a style expression.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} op Arithmetic operator.
|
|
7
|
+
* @param {Array} args Expression operands.
|
|
8
|
+
* @param {Object} properties Feature properties.
|
|
9
|
+
* @param {number} zoom Current zoom.
|
|
10
|
+
*
|
|
11
|
+
* @returns {number} Arithmetic result.
|
|
12
|
+
*
|
|
13
|
+
* @throws {Error} If the operator is unsupported.
|
|
14
|
+
*/
|
|
15
|
+
export function evaluateMath(op, args, properties, zoom) {
|
|
16
|
+
let i = 0, sum = 0;
|
|
17
|
+
if (op === '+') {
|
|
18
|
+
for (i = 0; i < args.length; i++) sum += evaluateStyle(args[i], properties, zoom);
|
|
19
|
+
return sum;
|
|
20
|
+
}
|
|
21
|
+
if (op === '-') {
|
|
22
|
+
if (args.length === 1) return -evaluateStyle(args[0], properties, zoom);
|
|
23
|
+
return evaluateStyle(args[0], properties, zoom) - evaluateStyle(args[1], properties, zoom);
|
|
24
|
+
}
|
|
25
|
+
throw /* alloc */ new Error(`Unsupported vector style expression: ${op}`);
|
|
26
|
+
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import { arrayContainsRange } from './arrayContainsRange.js';
|
|
2
|
-
import { evaluateInput } from './evaluateInput.js';
|
|
3
|
-
import { evaluateStyle } from './evaluateStyle.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Evaluate membership or legacy negated membership in a style filter.
|
|
7
|
-
*
|
|
8
|
-
* @param {string} op Membership operator.
|
|
9
|
-
* @param {Array} args Target and candidate operands.
|
|
10
|
-
* @param {Object} properties Feature properties.
|
|
11
|
-
* @param {number} zoom Current zoom.
|
|
12
|
-
* @param {boolean} legacy Whether to use legacy filter semantics.
|
|
13
|
-
*
|
|
14
|
-
* @returns {boolean} Membership result.
|
|
15
|
-
*/
|
|
16
|
-
export function evaluateMembership(op, args, properties, zoom, legacy) {
|
|
17
|
-
let target = null;
|
|
18
|
-
if (op === '!in') {
|
|
19
|
-
target = evaluateInput(args[0], properties, zoom, legacy);
|
|
20
|
-
return !arrayContainsRange(args, 1, args.length, target);
|
|
21
|
-
}
|
|
22
|
-
if (legacy) {
|
|
23
|
-
target = evaluateInput(args[0], properties, zoom, true);
|
|
24
|
-
return arrayContainsRange(args, 1, args.length, target);
|
|
25
|
-
}
|
|
26
|
-
const values = evaluateStyle(args[1], properties, zoom);
|
|
27
|
-
target = evaluateInput(args[0], properties, zoom, false);
|
|
28
|
-
return values.includes(target);
|
|
29
|
-
}
|
|
1
|
+
import { arrayContainsRange } from './arrayContainsRange.js';
|
|
2
|
+
import { evaluateInput } from './evaluateInput.js';
|
|
3
|
+
import { evaluateStyle } from './evaluateStyle.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Evaluate membership or legacy negated membership in a style filter.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} op Membership operator.
|
|
9
|
+
* @param {Array} args Target and candidate operands.
|
|
10
|
+
* @param {Object} properties Feature properties.
|
|
11
|
+
* @param {number} zoom Current zoom.
|
|
12
|
+
* @param {boolean} legacy Whether to use legacy filter semantics.
|
|
13
|
+
*
|
|
14
|
+
* @returns {boolean} Membership result.
|
|
15
|
+
*/
|
|
16
|
+
export function evaluateMembership(op, args, properties, zoom, legacy) {
|
|
17
|
+
let target = null;
|
|
18
|
+
if (op === '!in') {
|
|
19
|
+
target = evaluateInput(args[0], properties, zoom, legacy);
|
|
20
|
+
return !arrayContainsRange(args, 1, args.length, target);
|
|
21
|
+
}
|
|
22
|
+
if (legacy) {
|
|
23
|
+
target = evaluateInput(args[0], properties, zoom, true);
|
|
24
|
+
return arrayContainsRange(args, 1, args.length, target);
|
|
25
|
+
}
|
|
26
|
+
const values = evaluateStyle(args[1], properties, zoom);
|
|
27
|
+
target = evaluateInput(args[0], properties, zoom, false);
|
|
28
|
+
return values.includes(target);
|
|
29
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { evaluateInput } from './evaluateInput.js';
|
|
2
|
-
import { evaluateMembership } from './evaluateMembership.js';
|
|
3
|
-
import { evaluateStyle } from './evaluateStyle.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Evaluate logical negation, inequality or negated membership.
|
|
7
|
-
*
|
|
8
|
-
* @param {string} op Expression operator.
|
|
9
|
-
* @param {Array} args Expression operands.
|
|
10
|
-
* @param {Object} properties Feature properties.
|
|
11
|
-
* @param {number} zoom Current zoom.
|
|
12
|
-
* @param {boolean} legacy Whether to use legacy filter semantics.
|
|
13
|
-
*
|
|
14
|
-
* @returns {boolean} Expression result.
|
|
15
|
-
*
|
|
16
|
-
* @throws {Error} If the operator is unsupported.
|
|
17
|
-
*/
|
|
18
|
-
export function evaluateNegation(op, args, properties, zoom, legacy) {
|
|
19
|
-
if (op === '!') return !evaluateStyle(args[0], properties, zoom, legacy);
|
|
20
|
-
if (op === '!=') {
|
|
21
|
-
return evaluateInput(args[0], properties, zoom, legacy) !==
|
|
22
|
-
evaluateStyle(args[1], properties, zoom);
|
|
23
|
-
}
|
|
24
|
-
if (op === '!in') return evaluateMembership(op, args, properties, zoom, legacy);
|
|
25
|
-
throw /* alloc */ new Error(`Unsupported vector style expression: ${op}`);
|
|
26
|
-
}
|
|
1
|
+
import { evaluateInput } from './evaluateInput.js';
|
|
2
|
+
import { evaluateMembership } from './evaluateMembership.js';
|
|
3
|
+
import { evaluateStyle } from './evaluateStyle.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Evaluate logical negation, inequality or negated membership.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} op Expression operator.
|
|
9
|
+
* @param {Array} args Expression operands.
|
|
10
|
+
* @param {Object} properties Feature properties.
|
|
11
|
+
* @param {number} zoom Current zoom.
|
|
12
|
+
* @param {boolean} legacy Whether to use legacy filter semantics.
|
|
13
|
+
*
|
|
14
|
+
* @returns {boolean} Expression result.
|
|
15
|
+
*
|
|
16
|
+
* @throws {Error} If the operator is unsupported.
|
|
17
|
+
*/
|
|
18
|
+
export function evaluateNegation(op, args, properties, zoom, legacy) {
|
|
19
|
+
if (op === '!') return !evaluateStyle(args[0], properties, zoom, legacy);
|
|
20
|
+
if (op === '!=') {
|
|
21
|
+
return evaluateInput(args[0], properties, zoom, legacy) !==
|
|
22
|
+
evaluateStyle(args[1], properties, zoom);
|
|
23
|
+
}
|
|
24
|
+
if (op === '!in') return evaluateMembership(op, args, properties, zoom, legacy);
|
|
25
|
+
throw /* alloc */ new Error(`Unsupported vector style expression: ${op}`);
|
|
26
|
+
}
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Evaluate a literal, property lookup, property existence or zoom expression.
|
|
3
|
-
*
|
|
4
|
-
* @param {string} op Expression operator.
|
|
5
|
-
* @param {Array} args Expression operands.
|
|
6
|
-
* @param {Object} properties Feature properties.
|
|
7
|
-
* @param {number} zoom Current zoom.
|
|
8
|
-
*
|
|
9
|
-
* @returns {*} Expression result.
|
|
10
|
-
*
|
|
11
|
-
* @throws {Error} If the operator is unsupported.
|
|
12
|
-
*/
|
|
13
|
-
export function evaluatePrimitive(op, args, properties, zoom) {
|
|
14
|
-
switch (op) {
|
|
15
|
-
case 'literal': return args[0];
|
|
16
|
-
case 'get': return properties[args[0]];
|
|
17
|
-
case 'has': return Object.hasOwn(properties, args[0]);
|
|
18
|
-
case 'zoom': return zoom;
|
|
19
|
-
default: throw /* alloc */ new Error(`Unsupported vector style expression: ${op}`);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Evaluate a literal, property lookup, property existence or zoom expression.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} op Expression operator.
|
|
5
|
+
* @param {Array} args Expression operands.
|
|
6
|
+
* @param {Object} properties Feature properties.
|
|
7
|
+
* @param {number} zoom Current zoom.
|
|
8
|
+
*
|
|
9
|
+
* @returns {*} Expression result.
|
|
10
|
+
*
|
|
11
|
+
* @throws {Error} If the operator is unsupported.
|
|
12
|
+
*/
|
|
13
|
+
export function evaluatePrimitive(op, args, properties, zoom) {
|
|
14
|
+
switch (op) {
|
|
15
|
+
case 'literal': return args[0];
|
|
16
|
+
case 'get': return properties[args[0]];
|
|
17
|
+
case 'has': return Object.hasOwn(properties, args[0]);
|
|
18
|
+
case 'zoom': return zoom;
|
|
19
|
+
default: throw /* alloc */ new Error(`Unsupported vector style expression: ${op}`);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { evaluateStyle } from './evaluateStyle.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Evaluate the output of the last step whose stop is reached.
|
|
5
|
-
*
|
|
6
|
-
* @param {Array} args Input, default output and stop/output pairs.
|
|
7
|
-
* @param {Object} properties Feature properties.
|
|
8
|
-
* @param {number} zoom Current zoom.
|
|
9
|
-
*
|
|
10
|
-
* @returns {*} Selected output.
|
|
11
|
-
*/
|
|
12
|
-
export function evaluateStep(args, properties, zoom) {
|
|
13
|
-
const result = evaluateStyle(args[0], properties, zoom);
|
|
14
|
-
let output = args[1], i = 0;
|
|
15
|
-
for (i = 2; i < args.length; i += 2) {
|
|
16
|
-
if (result < args[i]) break;
|
|
17
|
-
output = args[i + 1];
|
|
18
|
-
}
|
|
19
|
-
return evaluateStyle(output, properties, zoom);
|
|
20
|
-
}
|
|
1
|
+
import { evaluateStyle } from './evaluateStyle.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Evaluate the output of the last step whose stop is reached.
|
|
5
|
+
*
|
|
6
|
+
* @param {Array} args Input, default output and stop/output pairs.
|
|
7
|
+
* @param {Object} properties Feature properties.
|
|
8
|
+
* @param {number} zoom Current zoom.
|
|
9
|
+
*
|
|
10
|
+
* @returns {*} Selected output.
|
|
11
|
+
*/
|
|
12
|
+
export function evaluateStep(args, properties, zoom) {
|
|
13
|
+
const result = evaluateStyle(args[0], properties, zoom);
|
|
14
|
+
let output = args[1], i = 0;
|
|
15
|
+
for (i = 2; i < args.length; i += 2) {
|
|
16
|
+
if (result < args[i]) break;
|
|
17
|
+
output = args[i + 1];
|
|
18
|
+
}
|
|
19
|
+
return evaluateStyle(output, properties, zoom);
|
|
20
|
+
}
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
import { evaluateBoolean } from './evaluateBoolean.js';
|
|
2
|
-
import { evaluateCoalesceOrCase } from './evaluateCoalesceOrCase.js';
|
|
3
|
-
import { evaluateComparison } from './evaluateComparison.js';
|
|
4
|
-
import { evaluateIExpression } from './evaluateIExpression.js';
|
|
5
|
-
import { evaluateMath } from './evaluateMath.js';
|
|
6
|
-
import { evaluateMatch } from './evaluateMatch.js';
|
|
7
|
-
import { evaluateNegation } from './evaluateNegation.js';
|
|
8
|
-
import { evaluatePrimitive } from './evaluatePrimitive.js';
|
|
9
|
-
import { evaluateStep } from './evaluateStep.js';
|
|
10
|
-
import { evaluateToExpression } from './evaluateToExpression.js';
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* Evaluate a supported vector style expression or return a non-array value unchanged.
|
|
14
|
-
*
|
|
15
|
-
* @param {*} value Style value or expression.
|
|
16
|
-
* @param {Object} properties Feature properties.
|
|
17
|
-
* @param {number} zoom Current zoom.
|
|
18
|
-
* @param {boolean} [legacy] Whether to use legacy filter semantics.
|
|
19
|
-
*
|
|
20
|
-
* @returns {*} Evaluated value.
|
|
21
|
-
*/
|
|
22
|
-
export function evaluateStyle(value, properties, zoom, legacy = false) {
|
|
23
|
-
if (!Array.isArray(value)) return value;
|
|
24
|
-
const op = value[0];
|
|
25
|
-
const args = value.slice(1);
|
|
26
|
-
const operation = String(op);
|
|
27
|
-
if (/^(?:literal|get|has|zoom)$/.test(operation)) {
|
|
28
|
-
return evaluatePrimitive(op, args, properties, zoom);
|
|
29
|
-
}
|
|
30
|
-
switch (operation[0]) {
|
|
31
|
-
case 'a': return evaluateBoolean(op, args, properties, zoom, legacy);
|
|
32
|
-
case '!': return evaluateNegation(op, args, properties, zoom, legacy);
|
|
33
|
-
case '=':
|
|
34
|
-
case '<':
|
|
35
|
-
case '>': return evaluateComparison(op, args, properties, zoom, legacy);
|
|
36
|
-
case 'i': return evaluateIExpression(op, args, properties, zoom, legacy);
|
|
37
|
-
case 't': return evaluateToExpression(op, args, properties, zoom, legacy);
|
|
38
|
-
case 'c': return evaluateCoalesceOrCase(op, args, properties, zoom, legacy);
|
|
39
|
-
case 'm': return evaluateMatch(args, properties, zoom);
|
|
40
|
-
case 's': return evaluateStep(args, properties, zoom);
|
|
41
|
-
default: return evaluateMath(op, args, properties, zoom);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
1
|
+
import { evaluateBoolean } from './evaluateBoolean.js';
|
|
2
|
+
import { evaluateCoalesceOrCase } from './evaluateCoalesceOrCase.js';
|
|
3
|
+
import { evaluateComparison } from './evaluateComparison.js';
|
|
4
|
+
import { evaluateIExpression } from './evaluateIExpression.js';
|
|
5
|
+
import { evaluateMath } from './evaluateMath.js';
|
|
6
|
+
import { evaluateMatch } from './evaluateMatch.js';
|
|
7
|
+
import { evaluateNegation } from './evaluateNegation.js';
|
|
8
|
+
import { evaluatePrimitive } from './evaluatePrimitive.js';
|
|
9
|
+
import { evaluateStep } from './evaluateStep.js';
|
|
10
|
+
import { evaluateToExpression } from './evaluateToExpression.js';
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Evaluate a supported vector style expression or return a non-array value unchanged.
|
|
14
|
+
*
|
|
15
|
+
* @param {*} value Style value or expression.
|
|
16
|
+
* @param {Object} properties Feature properties.
|
|
17
|
+
* @param {number} zoom Current zoom.
|
|
18
|
+
* @param {boolean} [legacy] Whether to use legacy filter semantics.
|
|
19
|
+
*
|
|
20
|
+
* @returns {*} Evaluated value.
|
|
21
|
+
*/
|
|
22
|
+
export function evaluateStyle(value, properties, zoom, legacy = false) {
|
|
23
|
+
if (!Array.isArray(value)) return value;
|
|
24
|
+
const op = value[0];
|
|
25
|
+
const args = value.slice(1);
|
|
26
|
+
const operation = String(op);
|
|
27
|
+
if (/^(?:literal|get|has|zoom)$/.test(operation)) {
|
|
28
|
+
return evaluatePrimitive(op, args, properties, zoom);
|
|
29
|
+
}
|
|
30
|
+
switch (operation[0]) {
|
|
31
|
+
case 'a': return evaluateBoolean(op, args, properties, zoom, legacy);
|
|
32
|
+
case '!': return evaluateNegation(op, args, properties, zoom, legacy);
|
|
33
|
+
case '=':
|
|
34
|
+
case '<':
|
|
35
|
+
case '>': return evaluateComparison(op, args, properties, zoom, legacy);
|
|
36
|
+
case 'i': return evaluateIExpression(op, args, properties, zoom, legacy);
|
|
37
|
+
case 't': return evaluateToExpression(op, args, properties, zoom, legacy);
|
|
38
|
+
case 'c': return evaluateCoalesceOrCase(op, args, properties, zoom, legacy);
|
|
39
|
+
case 'm': return evaluateMatch(args, properties, zoom);
|
|
40
|
+
case 's': return evaluateStep(args, properties, zoom);
|
|
41
|
+
default: return evaluateMath(op, args, properties, zoom);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { evaluateStyle } from './evaluateStyle.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Evaluate a boolean or numeric conversion expression.
|
|
5
|
-
*
|
|
6
|
-
* @param {string} op Conversion operator.
|
|
7
|
-
* @param {Array} args Candidate expressions.
|
|
8
|
-
* @param {Object} properties Feature properties.
|
|
9
|
-
* @param {number} zoom Current zoom.
|
|
10
|
-
*
|
|
11
|
-
* @returns {boolean|number} Converted value.
|
|
12
|
-
*
|
|
13
|
-
* @throws {Error} If no numeric candidate is finite.
|
|
14
|
-
* @throws {Error} If the operator is unsupported.
|
|
15
|
-
*/
|
|
16
|
-
export function evaluateToExpression(op, args, properties, zoom) {
|
|
17
|
-
if (op === 'to-boolean') return Boolean(evaluateStyle(args[0], properties, zoom));
|
|
18
|
-
if (op === 'to-number') {
|
|
19
|
-
let i = 0, number = 0;
|
|
20
|
-
for (i = 0; i < args.length; i++) {
|
|
21
|
-
number = Number(evaluateStyle(args[i], properties, zoom));
|
|
22
|
-
if (Number.isFinite(number)) return number;
|
|
23
|
-
}
|
|
24
|
-
throw /* alloc */ new Error('Invalid numeric style expression');
|
|
25
|
-
}
|
|
26
|
-
throw /* alloc */ new Error(`Unsupported vector style expression: ${op}`);
|
|
27
|
-
}
|
|
1
|
+
import { evaluateStyle } from './evaluateStyle.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Evaluate a boolean or numeric conversion expression.
|
|
5
|
+
*
|
|
6
|
+
* @param {string} op Conversion operator.
|
|
7
|
+
* @param {Array} args Candidate expressions.
|
|
8
|
+
* @param {Object} properties Feature properties.
|
|
9
|
+
* @param {number} zoom Current zoom.
|
|
10
|
+
*
|
|
11
|
+
* @returns {boolean|number} Converted value.
|
|
12
|
+
*
|
|
13
|
+
* @throws {Error} If no numeric candidate is finite.
|
|
14
|
+
* @throws {Error} If the operator is unsupported.
|
|
15
|
+
*/
|
|
16
|
+
export function evaluateToExpression(op, args, properties, zoom) {
|
|
17
|
+
if (op === 'to-boolean') return Boolean(evaluateStyle(args[0], properties, zoom));
|
|
18
|
+
if (op === 'to-number') {
|
|
19
|
+
let i = 0, number = 0;
|
|
20
|
+
for (i = 0; i < args.length; i++) {
|
|
21
|
+
number = Number(evaluateStyle(args[i], properties, zoom));
|
|
22
|
+
if (Number.isFinite(number)) return number;
|
|
23
|
+
}
|
|
24
|
+
throw /* alloc */ new Error('Invalid numeric style expression');
|
|
25
|
+
}
|
|
26
|
+
throw /* alloc */ new Error(`Unsupported vector style expression: ${op}`);
|
|
27
|
+
}
|
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
import { readPaintValue } from './readPaintValue.js';
|
|
2
|
-
import { styleColor } from './styleColor.js';
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Resolve fill paint expressions to normalized colors and opacity.
|
|
6
|
-
*
|
|
7
|
-
* @param {Object} paint Vector style paint values.
|
|
8
|
-
* @param {Object} properties Feature properties.
|
|
9
|
-
* @param {number} zoom Current zoom.
|
|
10
|
-
*
|
|
11
|
-
* @returns {Object} Fill and outline rendering options.
|
|
12
|
-
*/
|
|
13
|
-
export function fillVectorPaint(paint, properties, zoom) {
|
|
14
|
-
const fill = styleColor(readPaintValue(paint, 'fill-color', '#000', properties, zoom));
|
|
15
|
-
const outline = readPaintValue(paint, 'fill-outline-color', null, properties, zoom);
|
|
16
|
-
const rgb = outline === null ? null : styleColor(outline);
|
|
17
|
-
const fillOpacity = readPaintValue(paint, 'fill-opacity', 1, properties, zoom) * fill[3];
|
|
18
|
-
const fillColor = /* alloc */ { r: fill[0] / 255, g: fill[1] / 255, b: fill[2] / 255 };
|
|
19
|
-
const color = rgb ? /* alloc */ { r: rgb[0] / 255, g: rgb[1] / 255, b: rgb[2] / 255 } : null;
|
|
20
|
-
return /* alloc */ {
|
|
21
|
-
fillColor,
|
|
22
|
-
fillOpacity,
|
|
23
|
-
color,
|
|
24
|
-
weight: 0.5
|
|
25
|
-
};
|
|
26
|
-
}
|
|
1
|
+
import { readPaintValue } from './readPaintValue.js';
|
|
2
|
+
import { styleColor } from './styleColor.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Resolve fill paint expressions to normalized colors and opacity.
|
|
6
|
+
*
|
|
7
|
+
* @param {Object} paint Vector style paint values.
|
|
8
|
+
* @param {Object} properties Feature properties.
|
|
9
|
+
* @param {number} zoom Current zoom.
|
|
10
|
+
*
|
|
11
|
+
* @returns {Object} Fill and outline rendering options.
|
|
12
|
+
*/
|
|
13
|
+
export function fillVectorPaint(paint, properties, zoom) {
|
|
14
|
+
const fill = styleColor(readPaintValue(paint, 'fill-color', '#000', properties, zoom));
|
|
15
|
+
const outline = readPaintValue(paint, 'fill-outline-color', null, properties, zoom);
|
|
16
|
+
const rgb = outline === null ? null : styleColor(outline);
|
|
17
|
+
const fillOpacity = readPaintValue(paint, 'fill-opacity', 1, properties, zoom) * fill[3];
|
|
18
|
+
const fillColor = /* alloc */ { r: fill[0] / 255, g: fill[1] / 255, b: fill[2] / 255 };
|
|
19
|
+
const color = rgb ? /* alloc */ { r: rgb[0] / 255, g: rgb[1] / 255, b: rgb[2] / 255 } : null;
|
|
20
|
+
return /* alloc */ {
|
|
21
|
+
fillColor,
|
|
22
|
+
fillOpacity,
|
|
23
|
+
color,
|
|
24
|
+
weight: 0.5
|
|
25
|
+
};
|
|
26
|
+
}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
import { readPaintValue } from './readPaintValue.js';
|
|
2
|
-
import { scaleDashArray } from './scaleDashArray.js';
|
|
3
|
-
import { styleColor } from './styleColor.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Resolve line paint and layout to rendering options.
|
|
7
|
-
*
|
|
8
|
-
* @param {Object} layer Vector style layer.
|
|
9
|
-
* @param {Object} paint Vector style paint values.
|
|
10
|
-
* @param {Object} properties Feature properties.
|
|
11
|
-
* @param {number} zoom Current zoom.
|
|
12
|
-
*
|
|
13
|
-
* @returns {Object} Line color, opacity, width, dash, cap and join options.
|
|
14
|
-
*/
|
|
15
|
-
export function lineVectorPaint(layer, paint, properties, zoom) {
|
|
16
|
-
const weight = readPaintValue(paint, 'line-width', 1, properties, zoom);
|
|
17
|
-
const rgb = styleColor(readPaintValue(paint, 'line-color', '#000', properties, zoom));
|
|
18
|
-
const opacity = readPaintValue(paint, 'line-opacity', 1, properties, zoom) * rgb[3];
|
|
19
|
-
const dashArray = scaleDashArray(paint['line-dasharray'], weight, properties, zoom);
|
|
20
|
-
const lineCap = layer.layout?.['line-cap'] || 'butt';
|
|
21
|
-
const lineJoin = layer.layout?.['line-join'] || 'miter';
|
|
22
|
-
const color = /* alloc */ { r: rgb[0] / 255, g: rgb[1] / 255, b: rgb[2] / 255 };
|
|
23
|
-
return /* alloc */ {
|
|
24
|
-
color,
|
|
25
|
-
opacity,
|
|
26
|
-
weight,
|
|
27
|
-
dashArray,
|
|
28
|
-
lineCap,
|
|
29
|
-
lineJoin
|
|
30
|
-
};
|
|
31
|
-
}
|
|
1
|
+
import { readPaintValue } from './readPaintValue.js';
|
|
2
|
+
import { scaleDashArray } from './scaleDashArray.js';
|
|
3
|
+
import { styleColor } from './styleColor.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Resolve line paint and layout to rendering options.
|
|
7
|
+
*
|
|
8
|
+
* @param {Object} layer Vector style layer.
|
|
9
|
+
* @param {Object} paint Vector style paint values.
|
|
10
|
+
* @param {Object} properties Feature properties.
|
|
11
|
+
* @param {number} zoom Current zoom.
|
|
12
|
+
*
|
|
13
|
+
* @returns {Object} Line color, opacity, width, dash, cap and join options.
|
|
14
|
+
*/
|
|
15
|
+
export function lineVectorPaint(layer, paint, properties, zoom) {
|
|
16
|
+
const weight = readPaintValue(paint, 'line-width', 1, properties, zoom);
|
|
17
|
+
const rgb = styleColor(readPaintValue(paint, 'line-color', '#000', properties, zoom));
|
|
18
|
+
const opacity = readPaintValue(paint, 'line-opacity', 1, properties, zoom) * rgb[3];
|
|
19
|
+
const dashArray = scaleDashArray(paint['line-dasharray'], weight, properties, zoom);
|
|
20
|
+
const lineCap = layer.layout?.['line-cap'] || 'butt';
|
|
21
|
+
const lineJoin = layer.layout?.['line-join'] || 'miter';
|
|
22
|
+
const color = /* alloc */ { r: rgb[0] / 255, g: rgb[1] / 255, b: rgb[2] / 255 };
|
|
23
|
+
return /* alloc */ {
|
|
24
|
+
color,
|
|
25
|
+
opacity,
|
|
26
|
+
weight,
|
|
27
|
+
dashArray,
|
|
28
|
+
lineCap,
|
|
29
|
+
lineJoin
|
|
30
|
+
};
|
|
31
|
+
}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parse an rgb or rgba color into numeric components.
|
|
3
|
-
*
|
|
4
|
-
* @param {string} value Color text.
|
|
5
|
-
*
|
|
6
|
-
* @returns {Array<number>} Red, green, blue and alpha components.
|
|
7
|
-
*
|
|
8
|
-
* @throws {Error} If the color syntax or components are unsupported.
|
|
9
|
-
*/
|
|
10
|
-
export function parseFunctionalColor(value) {
|
|
11
|
-
const match = /^rgba?\(([^)]+)\)$/.exec(value);
|
|
12
|
-
if (match) {
|
|
13
|
-
const values = match[1].split(',');
|
|
14
|
-
let i = 0, finite = true;
|
|
15
|
-
for (i = 0; i < values.length; i++) values[i] = Number(values[i]);
|
|
16
|
-
if (values.length === 3) values.push(1);
|
|
17
|
-
for (i = 0; i < values.length; i++) {
|
|
18
|
-
if (!Number.isFinite(values[i])) finite = false;
|
|
19
|
-
}
|
|
20
|
-
if (values.length === 4 && finite) return values;
|
|
21
|
-
}
|
|
22
|
-
throw /* alloc */ new Error(`Unsupported interpolated style color: ${value}`);
|
|
23
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Parse an rgb or rgba color into numeric components.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} value Color text.
|
|
5
|
+
*
|
|
6
|
+
* @returns {Array<number>} Red, green, blue and alpha components.
|
|
7
|
+
*
|
|
8
|
+
* @throws {Error} If the color syntax or components are unsupported.
|
|
9
|
+
*/
|
|
10
|
+
export function parseFunctionalColor(value) {
|
|
11
|
+
const match = /^rgba?\(([^)]+)\)$/.exec(value);
|
|
12
|
+
if (match) {
|
|
13
|
+
const values = match[1].split(',');
|
|
14
|
+
let i = 0, finite = true;
|
|
15
|
+
for (i = 0; i < values.length; i++) values[i] = Number(values[i]);
|
|
16
|
+
if (values.length === 3) values.push(1);
|
|
17
|
+
for (i = 0; i < values.length; i++) {
|
|
18
|
+
if (!Number.isFinite(values[i])) finite = false;
|
|
19
|
+
}
|
|
20
|
+
if (values.length === 4 && finite) return values;
|
|
21
|
+
}
|
|
22
|
+
throw /* alloc */ new Error(`Unsupported interpolated style color: ${value}`);
|
|
23
|
+
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Parse a three- or six-digit hexadecimal color.
|
|
3
|
-
*
|
|
4
|
-
* @param {string} value Validated hexadecimal color text.
|
|
5
|
-
*
|
|
6
|
-
* @returns {Array<number>} Red, green, blue and opaque alpha.
|
|
7
|
-
*/
|
|
8
|
-
export function parseHexColor(value) {
|
|
9
|
-
let i = 0, offset = 0;
|
|
10
|
-
if (value.length === 4) {
|
|
11
|
-
value = '#' + value[1] + value[1] + value[2] + value[2] + value[3] + value[3];
|
|
12
|
-
}
|
|
13
|
-
const color = /* alloc */ [];
|
|
14
|
-
for (i = 1; i < 6; i += 2) {
|
|
15
|
-
offset = parseInt(value.slice(i, i + 2), 16);
|
|
16
|
-
color.push(offset);
|
|
17
|
-
}
|
|
18
|
-
color.push(1);
|
|
19
|
-
return color;
|
|
20
|
-
}
|
|
1
|
+
/**
|
|
2
|
+
* Parse a three- or six-digit hexadecimal color.
|
|
3
|
+
*
|
|
4
|
+
* @param {string} value Validated hexadecimal color text.
|
|
5
|
+
*
|
|
6
|
+
* @returns {Array<number>} Red, green, blue and opaque alpha.
|
|
7
|
+
*/
|
|
8
|
+
export function parseHexColor(value) {
|
|
9
|
+
let i = 0, offset = 0;
|
|
10
|
+
if (value.length === 4) {
|
|
11
|
+
value = '#' + value[1] + value[1] + value[2] + value[2] + value[3] + value[3];
|
|
12
|
+
}
|
|
13
|
+
const color = /* alloc */ [];
|
|
14
|
+
for (i = 1; i < 6; i += 2) {
|
|
15
|
+
offset = parseInt(value.slice(i, i + 2), 16);
|
|
16
|
+
color.push(offset);
|
|
17
|
+
}
|
|
18
|
+
color.push(1);
|
|
19
|
+
return color;
|
|
20
|
+
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { removeTrailingCommas } from './removeTrailingCommas.js';
|
|
2
|
-
import { stripStyleComments } from './stripStyleComments.js';
|
|
3
|
-
import { validateVectorLayers } from './validateVectorLayers.js';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Parse a vector style document or otm_layers assignment after removing comments and trailing commas.
|
|
7
|
-
*
|
|
8
|
-
* @param {string} text Style source text.
|
|
9
|
-
*
|
|
10
|
-
* @returns {Array<Object>} Validated style layers.
|
|
11
|
-
*/
|
|
12
|
-
export function parseVectorStyle(text) {
|
|
13
|
-
const prefix = /^\s*(?:const|let|var)\s+otm_layers\s*=\s*/.exec(text);
|
|
14
|
-
if (prefix) text = text.slice(prefix[0].length);
|
|
15
|
-
const cleaned = removeTrailingCommas(stripStyleComments(text).trim().replace(/;$/, ''));
|
|
16
|
-
const document = JSON.parse(cleaned);
|
|
17
|
-
const layers = document.layers ?? document;
|
|
18
|
-
validateVectorLayers(layers);
|
|
19
|
-
return layers;
|
|
20
|
-
}
|
|
1
|
+
import { removeTrailingCommas } from './removeTrailingCommas.js';
|
|
2
|
+
import { stripStyleComments } from './stripStyleComments.js';
|
|
3
|
+
import { validateVectorLayers } from './validateVectorLayers.js';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Parse a vector style document or otm_layers assignment after removing comments and trailing commas.
|
|
7
|
+
*
|
|
8
|
+
* @param {string} text Style source text.
|
|
9
|
+
*
|
|
10
|
+
* @returns {Array<Object>} Validated style layers.
|
|
11
|
+
*/
|
|
12
|
+
export function parseVectorStyle(text) {
|
|
13
|
+
const prefix = /^\s*(?:const|let|var)\s+otm_layers\s*=\s*/.exec(text);
|
|
14
|
+
if (prefix) text = text.slice(prefix[0].length);
|
|
15
|
+
const cleaned = removeTrailingCommas(stripStyleComments(text).trim().replace(/;$/, ''));
|
|
16
|
+
const document = JSON.parse(cleaned);
|
|
17
|
+
const layers = document.layers ?? document;
|
|
18
|
+
validateVectorLayers(layers);
|
|
19
|
+
return layers;
|
|
20
|
+
}
|