@openglobus/og 0.18.0 → 0.18.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 +8 -8
- package/lib/@openglobus/og.esm.js +2 -0
- package/lib/@openglobus/og.esm.js.map +1 -0
- package/lib/@openglobus/og.umd.js +2 -0
- package/lib/@openglobus/og.umd.js.map +1 -0
- package/lib/js/Clock.d.ts +106 -0
- package/{src/Clock.ts → lib/js/Clock.js} +31 -126
- package/lib/js/Deferred.d.ts +6 -0
- package/lib/js/Deferred.js +13 -0
- package/lib/js/Events.d.ts +90 -0
- package/{src/Events.ts → lib/js/Events.js} +29 -84
- package/lib/js/Extent.d.ts +145 -0
- package/{src/Extent.ts → lib/js/Extent.js} +74 -120
- package/lib/js/Globe.d.ts +132 -0
- package/{src/Globe.ts → lib/js/Globe.js} +61 -159
- package/lib/js/ImageCanvas.d.ts +128 -0
- package/{src/ImageCanvas.ts → lib/js/ImageCanvas.js} +24 -65
- package/lib/js/Lock.d.ts +15 -0
- package/{src/Lock.ts → lib/js/Lock.js} +7 -21
- package/lib/js/LonLat.d.ts +128 -0
- package/{src/LonLat.ts → lib/js/LonLat.js} +44 -75
- package/lib/js/Object3d.d.ts +49 -0
- package/{src/Object3d.ts → lib/js/Object3d.js} +64 -184
- package/lib/js/Popup.d.ts +46 -0
- package/{src/Popup.ts → lib/js/Popup.js} +42 -110
- package/lib/js/QueueArray.d.ts +16 -0
- package/{src/QueueArray.ts → lib/js/QueueArray.js} +12 -25
- package/lib/js/Rectangle.d.ts +76 -0
- package/{src/Rectangle.ts → lib/js/Rectangle.js} +12 -50
- package/lib/js/Stack.d.ts +20 -0
- package/{src/Stack.ts → lib/js/Stack.js} +13 -29
- package/lib/js/astro/astro.d.ts +39 -0
- package/{src/astro/astro.ts → lib/js/astro/astro.js} +2 -8
- package/lib/js/astro/earth.d.ts +8 -0
- package/{src/astro/earth.ts → lib/js/astro/earth.js} +3 -39
- package/lib/js/astro/jd.d.ts +234 -0
- package/{src/astro/jd.ts → lib/js/astro/jd.js} +55 -134
- package/lib/js/astro/orbit.d.ts +5 -0
- package/{src/astro/orbit.ts → lib/js/astro/orbit.js} +26 -39
- package/lib/js/astro/rotation.d.ts +2 -0
- package/{src/astro/rotation.ts → lib/js/astro/rotation.js} +2 -11
- package/lib/js/bv/Box.d.ts +32 -0
- package/{src/bv/Box.ts → lib/js/bv/Box.js} +7 -35
- package/lib/js/bv/Sphere.d.ts +37 -0
- package/{src/bv/Sphere.ts → lib/js/bv/Sphere.js} +6 -34
- package/{src/bv/index.ts → lib/js/bv/index.d.ts} +0 -1
- package/lib/js/bv/index.js +3 -0
- package/lib/js/camera/Camera.d.ts +314 -0
- package/{src/camera/Camera.ts → lib/js/camera/Camera.js} +77 -326
- package/lib/js/camera/Frustum.d.ts +139 -0
- package/{src/camera/Frustum.ts → lib/js/camera/Frustum.js} +66 -185
- package/lib/js/camera/PlanetCamera.d.ts +234 -0
- package/{src/camera/PlanetCamera.ts → lib/js/camera/PlanetCamera.js} +65 -338
- package/{src/camera/index.ts → lib/js/camera/index.d.ts} +0 -1
- package/lib/js/camera/index.js +3 -0
- package/lib/js/cons.d.ts +40 -0
- package/{src/cons.ts → lib/js/cons.js} +10 -22
- package/lib/js/control/Atmosphere.d.ts +16 -0
- package/{src/control/Atmosphere.ts → lib/js/control/Atmosphere.js} +33 -86
- package/lib/js/control/CompassButton.d.ts +16 -0
- package/{src/control/CompassButton.ts → lib/js/control/CompassButton.js} +18 -43
- package/lib/js/control/Control.d.ts +100 -0
- package/{src/control/Control.ts → lib/js/control/Control.js} +22 -89
- package/lib/js/control/DebugInfo.d.ts +25 -0
- package/{src/control/DebugInfo.ts → lib/js/control/DebugInfo.js} +38 -84
- package/lib/js/control/DrawingSwitcher.d.ts +13 -0
- package/{src/control/DrawingSwitcher.ts → lib/js/control/DrawingSwitcher.js} +13 -30
- package/lib/js/control/EarthCoordinates.d.ts +41 -0
- package/{src/control/EarthCoordinates.ts → lib/js/control/EarthCoordinates.js} +58 -119
- package/lib/js/control/EarthNavigation.d.ts +50 -0
- package/{src/control/EarthNavigation.ts → lib/js/control/EarthNavigation.js} +70 -161
- package/lib/js/control/GeoImageDragControl.d.ts +22 -0
- package/{src/control/GeoImageDragControl.ts → lib/js/control/GeoImageDragControl.js} +26 -49
- package/lib/js/control/KeyboardNavigation.d.ts +28 -0
- package/{src/control/KeyboardNavigation.ts → lib/js/control/KeyboardNavigation.js} +67 -92
- package/lib/js/control/LayerAnimation.d.ts +71 -0
- package/{src/control/LayerAnimation.ts → lib/js/control/LayerAnimation.js} +82 -162
- package/lib/js/control/LayerSwitcher.d.ts +21 -0
- package/{src/control/LayerSwitcher.ts → lib/js/control/LayerSwitcher.js} +16 -41
- package/lib/js/control/Lighting.d.ts +49 -0
- package/{src/control/Lighting.ts → lib/js/control/Lighting.js} +106 -219
- package/lib/js/control/MouseNavigation.d.ts +62 -0
- package/{src/control/MouseNavigation.ts → lib/js/control/MouseNavigation.js} +105 -211
- package/lib/js/control/MouseWheelZoomControl.d.ts +44 -0
- package/lib/js/control/MouseWheelZoomControl.js +181 -0
- package/lib/js/control/RulerSwitcher.d.ts +17 -0
- package/{src/control/RulerSwitcher.ts → lib/js/control/RulerSwitcher.js} +13 -28
- package/lib/js/control/ScaleControl.d.ts +24 -0
- package/lib/js/control/ScaleControl.js +91 -0
- package/lib/js/control/SegmentBoundVisualization.d.ts +12 -0
- package/lib/js/control/SegmentBoundVisualization.js +37 -0
- package/lib/js/control/ShowFps.d.ts +9 -0
- package/lib/js/control/ShowFps.js +20 -0
- package/lib/js/control/SimpleNavigation.d.ts +25 -0
- package/{src/control/SimpleNavigation.ts → lib/js/control/SimpleNavigation.js} +29 -51
- package/lib/js/control/SimpleSkyBackground.d.ts +15 -0
- package/{src/control/SimpleSkyBackground.ts → lib/js/control/SimpleSkyBackground.js} +21 -48
- package/lib/js/control/Sun.d.ts +33 -0
- package/{src/control/Sun.ts → lib/js/control/Sun.js} +34 -85
- package/lib/js/control/ToggleWireframe.d.ts +14 -0
- package/lib/js/control/ToggleWireframe.js +28 -0
- package/lib/js/control/TouchNavigation.d.ts +52 -0
- package/{src/control/TouchNavigation.ts → lib/js/control/TouchNavigation.js} +88 -193
- package/lib/js/control/ZoomControl.d.ts +27 -0
- package/{src/control/ZoomControl.ts → lib/js/control/ZoomControl.js} +25 -50
- package/lib/js/control/drawing/DrawingControl.d.ts +12 -0
- package/{src/control/drawing/DrawingControl.ts → lib/js/control/drawing/DrawingControl.js} +10 -20
- package/lib/js/control/drawing/LineStringDrawingScene.d.ts +15 -0
- package/{src/control/drawing/LineStringDrawingScene.ts → lib/js/control/drawing/LineStringDrawingScene.js} +28 -85
- package/lib/js/control/drawing/PolygonDrawingScene.d.ts +98 -0
- package/{src/control/drawing/PolygonDrawingScene.ts → lib/js/control/drawing/PolygonDrawingScene.js} +190 -388
- package/lib/js/control/elevationProfile/ElevationProfile.d.ts +61 -0
- package/{src/control/elevationProfile/ElevationProfile.ts → lib/js/control/elevationProfile/ElevationProfile.js} +56 -148
- package/lib/js/control/heightRuler/HeightRuler.d.ts +7 -0
- package/{src/control/heightRuler/HeightRuler.ts → lib/js/control/heightRuler/HeightRuler.js} +4 -9
- package/lib/js/control/heightRuler/HeightRulerScene.d.ts +35 -0
- package/{src/control/heightRuler/HeightRulerScene.ts → lib/js/control/heightRuler/HeightRulerScene.js} +47 -99
- package/lib/js/control/heightRuler/HeightRulerSwitcher.d.ts +6 -0
- package/{src/control/heightRuler/HeightRulerSwitcher.ts → lib/js/control/heightRuler/HeightRulerSwitcher.js} +2 -4
- package/{src/control/index.ts → lib/js/control/index.d.ts} +1 -18
- package/lib/js/control/index.js +28 -0
- package/lib/js/control/ruler/Ruler.d.ts +13 -0
- package/lib/js/control/ruler/Ruler.js +23 -0
- package/lib/js/control/ruler/RulerScene.d.ts +88 -0
- package/lib/js/control/ruler/RulerScene.js +324 -0
- package/lib/js/control/selection/Selection.d.ts +55 -0
- package/{src/control/selection/Selection.ts → lib/js/control/selection/Selection.js} +15 -34
- package/lib/js/control/selection/SelectionScene.d.ts +44 -0
- package/{src/control/selection/SelectionScene.ts → lib/js/control/selection/SelectionScene.js} +26 -113
- package/lib/js/control/timeline/TimelineControl.d.ts +18 -0
- package/{src/control/timeline/TimelineControl.ts → lib/js/control/timeline/TimelineControl.js} +13 -43
- package/lib/js/control/timeline/TimelineModel.d.ts +41 -0
- package/{src/control/timeline/TimelineModel.ts → lib/js/control/timeline/TimelineModel.js} +26 -74
- package/lib/js/control/timeline/TimelineView.d.ts +85 -0
- package/{src/control/timeline/TimelineView.ts → lib/js/control/timeline/TimelineView.js} +133 -281
- package/lib/js/control/timeline/timelineUtils.d.ts +12 -0
- package/lib/js/control/timeline/timelineUtils.js +112 -0
- package/lib/js/control/visibleExtent/Segment.d.ts +277 -0
- package/{src → lib/js}/control/visibleExtent/Segment.js +145 -698
- package/lib/js/control/visibleExtent/VisibleExtent.d.ts +5 -0
- package/{src → lib/js}/control/visibleExtent/VisibleExtent.js +1 -18
- package/lib/js/control/visibleExtent/drawnode.d.ts +7 -0
- package/{src/control/visibleExtent/drawnode.ts → lib/js/control/visibleExtent/drawnode.js} +1 -28
- package/lib/js/ellipsoid/Ellipsoid.d.ts +187 -0
- package/{src/ellipsoid/Ellipsoid.ts → lib/js/ellipsoid/Ellipsoid.js} +82 -267
- package/lib/js/ellipsoid/index.d.ts +3 -0
- package/lib/js/ellipsoid/index.js +3 -0
- package/lib/js/ellipsoid/wgs84.d.ts +6 -0
- package/{src/ellipsoid/wgs84.ts → lib/js/ellipsoid/wgs84.js} +1 -2
- package/lib/js/entity/BaseBillboard.d.ts +222 -0
- package/{src/entity/BaseBillboard.ts → lib/js/entity/BaseBillboard.js} +48 -165
- package/lib/js/entity/BaseBillboardHandler.d.ts +81 -0
- package/{src/entity/BaseBillboardHandler.ts → lib/js/entity/BaseBillboardHandler.js} +139 -365
- package/lib/js/entity/Billboard.d.ts +113 -0
- package/{src/entity/Billboard.ts → lib/js/entity/Billboard.js} +19 -83
- package/lib/js/entity/BillboardHandler.d.ts +15 -0
- package/{src/entity/BillboardHandler.ts → lib/js/entity/BillboardHandler.js} +27 -59
- package/lib/js/entity/Entity.d.ts +354 -0
- package/{src/entity/Entity.ts → lib/js/entity/Entity.js} +101 -373
- package/lib/js/entity/EntityCollection.d.ts +364 -0
- package/{src/entity/EntityCollection.ts → lib/js/entity/EntityCollection.js} +51 -353
- package/lib/js/entity/GeoObject.d.ts +138 -0
- package/{src/entity/GeoObject.ts → lib/js/entity/GeoObject.js} +41 -146
- package/lib/js/entity/GeoObjectHandler.d.ts +99 -0
- package/{src/entity/GeoObjectHandler.ts → lib/js/entity/GeoObjectHandler.js} +162 -423
- package/lib/js/entity/Geometry.d.ts +111 -0
- package/lib/js/entity/Geometry.js +283 -0
- package/lib/js/entity/GeometryHandler.d.ts +84 -0
- package/{src/entity/GeometryHandler.ts → lib/js/entity/GeometryHandler.js} +162 -657
- package/lib/js/entity/Label.d.ts +207 -0
- package/{src/entity/Label.ts → lib/js/entity/Label.js} +62 -164
- package/lib/js/entity/LabelHandler.d.ts +65 -0
- package/{src/entity/LabelHandler.ts → lib/js/entity/LabelHandler.js} +175 -408
- package/lib/js/entity/LabelWorker.d.ts +15 -0
- package/{src/entity/LabelWorker.ts → lib/js/entity/LabelWorker.js} +24 -45
- package/lib/js/entity/PointCloud.d.ts +179 -0
- package/{src/entity/PointCloud.ts → lib/js/entity/PointCloud.js} +65 -265
- package/lib/js/entity/PointCloudHandler.d.ts +42 -0
- package/{src/entity/PointCloudHandler.ts → lib/js/entity/PointCloudHandler.js} +19 -62
- package/lib/js/entity/Polyline.d.ts +337 -0
- package/{src/entity/Polyline.ts → lib/js/entity/Polyline.js} +289 -924
- package/lib/js/entity/PolylineHandler.d.ts +22 -0
- package/{src/entity/PolylineHandler.ts → lib/js/entity/PolylineHandler.js} +12 -37
- package/lib/js/entity/Ray.d.ts +133 -0
- package/{src/entity/Ray.ts → lib/js/entity/Ray.js} +26 -146
- package/lib/js/entity/RayHandler.d.ts +70 -0
- package/{src/entity/RayHandler.ts → lib/js/entity/RayHandler.js} +102 -342
- package/lib/js/entity/Strip.d.ts +127 -0
- package/{src/entity/Strip.ts → lib/js/entity/Strip.js} +102 -372
- package/lib/js/entity/StripHandler.d.ts +42 -0
- package/{src/entity/StripHandler.ts → lib/js/entity/StripHandler.js} +22 -74
- package/{src/entity/index.ts → lib/js/entity/index.d.ts} +1 -2
- package/lib/js/entity/index.js +11 -0
- package/lib/js/index.d.ts +33 -0
- package/lib/js/index.js +33 -0
- package/lib/js/input/KeyboardHandler.d.ts +33 -0
- package/{src/input/KeyboardHandler.ts → lib/js/input/KeyboardHandler.js} +45 -84
- package/lib/js/input/MouseHandler.d.ts +16 -0
- package/{src/input/MouseHandler.ts → lib/js/input/MouseHandler.js} +12 -36
- package/lib/js/input/TouchHandler.d.ts +11 -0
- package/{src/input/TouchHandler.ts → lib/js/input/TouchHandler.js} +11 -23
- package/lib/js/input/input.d.ts +3 -0
- package/{src/input/input.ts → lib/js/input/input.js} +1 -1
- package/lib/js/layer/BaseGeoImage.d.ts +145 -0
- package/{src/layer/BaseGeoImage.ts → lib/js/layer/BaseGeoImage.js} +70 -235
- package/lib/js/layer/CanvasTiles.d.ts +103 -0
- package/{src/layer/CanvasTiles.ts → lib/js/layer/CanvasTiles.js} +54 -146
- package/lib/js/layer/GeoImage.d.ts +61 -0
- package/{src/layer/GeoImage.ts → lib/js/layer/GeoImage.js} +24 -54
- package/lib/js/layer/GeoTexture2d.d.ts +17 -0
- package/lib/js/layer/GeoTexture2d.js +37 -0
- package/lib/js/layer/GeoVideo.d.ts +68 -0
- package/{src/layer/GeoVideo.ts → lib/js/layer/GeoVideo.js} +31 -61
- package/lib/js/layer/KML.d.ts +72 -0
- package/{src/layer/KML.ts → lib/js/layer/KML.js} +94 -138
- package/lib/js/layer/Layer.d.ts +401 -0
- package/{src/layer/Layer.ts → lib/js/layer/Layer.js} +92 -443
- package/lib/js/layer/Material.d.ts +34 -0
- package/{src/layer/Material.ts → lib/js/layer/Material.js} +9 -43
- package/lib/js/layer/Vector.d.ts +244 -0
- package/{src/layer/Vector.ts → lib/js/layer/Vector.js} +147 -418
- package/lib/js/layer/WMS.d.ts +75 -0
- package/{src/layer/WMS.ts → lib/js/layer/WMS.js} +18 -100
- package/lib/js/layer/XYZ.d.ts +149 -0
- package/{src/layer/XYZ.ts → lib/js/layer/XYZ.js} +71 -171
- package/lib/js/layer/index.d.ts +11 -0
- package/lib/js/layer/index.js +11 -0
- package/lib/js/light/LightSource.d.ts +174 -0
- package/{src/light/LightSource.ts → lib/js/light/LightSource.js} +22 -131
- package/lib/js/math/Line2.d.ts +11 -0
- package/{src/math/Line2.ts → lib/js/math/Line2.js} +5 -15
- package/lib/js/math/Line3.d.ts +28 -0
- package/lib/js/math/Line3.js +85 -0
- package/lib/js/math/Mat3.d.ts +77 -0
- package/{src/math/Mat3.ts → lib/js/math/Mat3.js} +22 -51
- package/lib/js/math/Mat4.d.ts +195 -0
- package/{src/math/Mat4.ts → lib/js/math/Mat4.js} +53 -219
- package/lib/js/math/Plane.d.ts +20 -0
- package/{src/math/Plane.ts → lib/js/math/Plane.js} +26 -40
- package/lib/js/math/Quat.d.ts +373 -0
- package/{src/math/Quat.ts → lib/js/math/Quat.js} +106 -319
- package/lib/js/math/Ray.d.ts +76 -0
- package/{src/math/Ray.ts → lib/js/math/Ray.js} +21 -66
- package/lib/js/math/Vec2.d.ts +310 -0
- package/{src/math/Vec2.ts → lib/js/math/Vec2.js} +55 -121
- package/lib/js/math/Vec3.d.ts +472 -0
- package/{src/math/Vec3.ts → lib/js/math/Vec3.js} +103 -236
- package/lib/js/math/Vec4.d.ts +163 -0
- package/{src/math/Vec4.ts → lib/js/math/Vec4.js} +23 -79
- package/lib/js/math/coder.d.ts +51 -0
- package/{src/math/coder.ts → lib/js/math/coder.js} +14 -20
- package/lib/js/math/index.d.ts +11 -0
- package/lib/js/math/index.js +11 -0
- package/lib/js/math.d.ts +266 -0
- package/{src/math.ts → lib/js/math.js} +37 -85
- package/lib/js/mercator.d.ts +92 -0
- package/{src/mercator.ts → lib/js/mercator.js} +13 -37
- package/lib/js/proj/EPSG3857.d.ts +9 -0
- package/{src/proj/EPSG3857.ts → lib/js/proj/EPSG3857.js} +0 -2
- package/lib/js/proj/EPSG4326.d.ts +9 -0
- package/{src/proj/EPSG4326.ts → lib/js/proj/EPSG4326.js} +0 -2
- package/lib/js/proj/Proj.d.ts +43 -0
- package/{src/proj/Proj.ts → lib/js/proj/Proj.js} +4 -29
- package/lib/js/quadTree/EPSG4326QuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/EPSG4326QuadTreeStrategy.js +17 -0
- package/lib/js/quadTree/EarthQuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/EarthQuadTreeStrategy.js +19 -0
- package/lib/js/quadTree/EntityCollectionNode.d.ts +54 -0
- package/{src/quadTree/EntityCollectionNode.ts → lib/js/quadTree/EntityCollectionNode.js} +83 -150
- package/lib/js/quadTree/MarsQuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/MarsQuadTreeStrategy.js +17 -0
- package/lib/js/quadTree/Node.d.ts +61 -0
- package/{src/quadTree/Node.ts → lib/js/quadTree/Node.js} +140 -357
- package/lib/js/quadTree/QuadTreeStrategy.d.ts +25 -0
- package/{src/quadTree/QuadTreeStrategy.ts → lib/js/quadTree/QuadTreeStrategy.js} +13 -44
- package/lib/js/quadTree/Wgs84QuadTreeStrategy.d.ts +6 -0
- package/lib/js/quadTree/Wgs84QuadTreeStrategy.js +15 -0
- package/lib/js/quadTree/index.d.ts +12 -0
- package/lib/js/quadTree/index.js +12 -0
- package/lib/js/quadTree/quadTree.d.ts +40 -0
- package/{src/quadTree/quadTree.ts → lib/js/quadTree/quadTree.js} +0 -9
- package/lib/js/renderer/Renderer.d.ts +311 -0
- package/{src/renderer/Renderer.ts → lib/js/renderer/Renderer.js} +169 -611
- package/lib/js/renderer/RendererEvents.d.ts +237 -0
- package/{src/renderer/RendererEvents.ts → lib/js/renderer/RendererEvents.js} +134 -471
- package/lib/js/scene/Axes.d.ts +12 -0
- package/lib/js/scene/Axes.js +59 -0
- package/lib/js/scene/BaseNode.d.ts +61 -0
- package/{src/scene/BaseNode.ts → lib/js/scene/BaseNode.js} +11 -57
- package/lib/js/scene/Planet.d.ts +623 -0
- package/{src/scene/Planet.ts → lib/js/scene/Planet.js} +251 -935
- package/lib/js/scene/RenderNode.d.ts +150 -0
- package/{src/scene/RenderNode.ts → lib/js/scene/RenderNode.js} +33 -138
- package/lib/js/scene/SkyBox.d.ts +13 -0
- package/{src/scene/SkyBox.ts → lib/js/scene/SkyBox.js} +16 -37
- package/{src/scene/index.ts → lib/js/scene/index.d.ts} +0 -1
- package/lib/js/scene/index.js +5 -0
- package/lib/js/segment/Segment.d.ts +278 -0
- package/{src/segment/Segment.ts → lib/js/segment/Segment.js} +242 -913
- package/lib/js/segment/SegmentLonLat.d.ts +48 -0
- package/{src/segment/SegmentLonLat.ts → lib/js/segment/SegmentLonLat.js} +58 -132
- package/lib/js/segment/SegmentLonLatWgs84.d.ts +10 -0
- package/lib/js/segment/SegmentLonLatWgs84.js +23 -0
- package/lib/js/segment/Slice.d.ts +13 -0
- package/{src/segment/Slice.ts → lib/js/segment/Slice.js} +4 -22
- package/lib/js/segment/segmentHelper.d.ts +18 -0
- package/{src/segment/segmentHelper.ts → lib/js/segment/segmentHelper.js} +30 -88
- package/lib/js/shaders/atmos.d.ts +4 -0
- package/{src/shaders/atmos.ts → lib/js/shaders/atmos.js} +8 -26
- package/lib/js/shaders/billboard.d.ts +3 -0
- package/{src/shaders/billboard.ts → lib/js/shaders/billboard.js} +9 -18
- package/lib/js/shaders/bloom.d.ts +2 -0
- package/{src/shaders/bloom.ts → lib/js/shaders/bloom.js} +5 -8
- package/lib/js/shaders/blur.d.ts +3 -0
- package/{src/shaders/blur.ts → lib/js/shaders/blur.js} +11 -19
- package/lib/js/shaders/depth.d.ts +2 -0
- package/{src/shaders/depth.ts → lib/js/shaders/depth.js} +3 -6
- package/lib/js/shaders/drawnode.d.ts +8 -0
- package/{src/shaders/drawnode.ts → lib/js/shaders/drawnode.js} +23 -75
- package/lib/js/shaders/geoObject.d.ts +3 -0
- package/{src/shaders/geoObject.ts → lib/js/shaders/geoObject.js} +51 -63
- package/lib/js/shaders/label.d.ts +4 -0
- package/{src/shaders/label.ts → lib/js/shaders/label.js} +12 -25
- package/lib/js/shaders/lumFilter.d.ts +2 -0
- package/{src/shaders/lumFilter.ts → lib/js/shaders/lumFilter.js} +4 -7
- package/lib/js/shaders/pickingMask.d.ts +2 -0
- package/{src/shaders/pickingMask.ts → lib/js/shaders/pickingMask.js} +5 -8
- package/lib/js/shaders/pointCloud.d.ts +2 -0
- package/{src/shaders/pointCloud.ts → lib/js/shaders/pointCloud.js} +4 -7
- package/lib/js/shaders/polyline.d.ts +3 -0
- package/{src/shaders/polyline.ts → lib/js/shaders/polyline.js} +7 -22
- package/lib/js/shaders/ray.d.ts +2 -0
- package/{src/shaders/ray.ts → lib/js/shaders/ray.js} +4 -7
- package/lib/js/shaders/screenFrame.d.ts +2 -0
- package/{src/shaders/screenFrame.ts → lib/js/shaders/screenFrame.js} +5 -8
- package/lib/js/shaders/skybox.d.ts +2 -0
- package/{src/shaders/skybox.ts → lib/js/shaders/skybox.js} +10 -13
- package/lib/js/shaders/toneMapping.d.ts +2 -0
- package/{src/shaders/toneMapping.ts → lib/js/shaders/toneMapping.js} +5 -8
- package/lib/js/shaders/utils.d.ts +1 -0
- package/{src/shaders/utils.ts → lib/js/shaders/utils.js} +1 -1
- package/lib/js/terrain/BilTerrain.d.ts +18 -0
- package/{src/terrain/BilTerrain.ts → lib/js/terrain/BilTerrain.js} +21 -118
- package/lib/js/terrain/EmptyTerrain.d.ts +106 -0
- package/{src/terrain/EmptyTerrain.ts → lib/js/terrain/EmptyTerrain.js} +20 -144
- package/lib/js/terrain/Geoid.d.ts +33 -0
- package/lib/js/terrain/Geoid.js +191 -0
- package/lib/js/terrain/GlobusTerrain.d.ts +134 -0
- package/{src/terrain/GlobusTerrain.ts → lib/js/terrain/GlobusTerrain.js} +82 -239
- package/lib/js/terrain/MapboxTerrain.d.ts +21 -0
- package/{src/terrain/MapboxTerrain.ts → lib/js/terrain/MapboxTerrain.js} +46 -215
- package/{src/terrain/index.ts → lib/js/terrain/index.d.ts} +0 -1
- package/lib/js/terrain/index.js +5 -0
- package/lib/js/ui/Button.d.ts +32 -0
- package/lib/js/ui/Button.js +78 -0
- package/lib/js/ui/ButtonGroup.d.ts +16 -0
- package/lib/js/ui/ButtonGroup.js +41 -0
- package/lib/js/ui/Dialog.d.ts +55 -0
- package/lib/js/ui/Dialog.js +173 -0
- package/lib/js/ui/Slider.d.ts +38 -0
- package/lib/js/ui/Slider.js +129 -0
- package/lib/js/ui/ToggleButton.d.ts +20 -0
- package/lib/js/ui/ToggleButton.js +42 -0
- package/lib/js/ui/View.d.ts +37 -0
- package/{src/ui/View.ts → lib/js/ui/View.js} +31 -77
- package/lib/js/ui/icons.d.ts +1 -0
- package/{src/ui/icons.ts → lib/js/ui/icons.js} +1 -1
- package/lib/js/utils/BaseWorker.d.ts +14 -0
- package/{src/utils/BaseWorker.ts → lib/js/utils/BaseWorker.js} +15 -28
- package/lib/js/utils/FontAtlas.d.ts +82 -0
- package/{src/utils/FontAtlas.ts → lib/js/utils/FontAtlas.js} +45 -181
- package/lib/js/utils/GeoImageCreator.d.ts +34 -0
- package/{src/utils/GeoImageCreator.ts → lib/js/utils/GeoImageCreator.js} +34 -91
- package/lib/js/utils/ImagesCacheManager.d.ts +22 -0
- package/{src/utils/ImagesCacheManager.ts → lib/js/utils/ImagesCacheManager.js} +16 -38
- package/lib/js/utils/Loader.d.ts +63 -0
- package/lib/js/utils/Loader.js +156 -0
- package/lib/js/utils/NormalMapCreator.d.ts +52 -0
- package/{src/utils/NormalMapCreator.ts → lib/js/utils/NormalMapCreator.js} +64 -195
- package/lib/js/utils/PlainSegmentWorker.d.ts +24 -0
- package/{src/utils/PlainSegmentWorker.ts → lib/js/utils/PlainSegmentWorker.js} +24 -56
- package/lib/js/utils/TerrainWorker.d.ts +28 -0
- package/{src/utils/TerrainWorker.ts → lib/js/utils/TerrainWorker.js} +19 -56
- package/lib/js/utils/TextureAtlas.d.ts +113 -0
- package/{src/utils/TextureAtlas.ts → lib/js/utils/TextureAtlas.js} +40 -131
- package/lib/js/utils/VectorTileCreator.d.ts +18 -0
- package/{src/utils/VectorTileCreator.ts → lib/js/utils/VectorTileCreator.js} +61 -147
- package/lib/js/utils/colorTable.d.ts +3 -0
- package/{src/utils/colorTable.ts → lib/js/utils/colorTable.js} +2 -2
- package/lib/js/utils/earcut.d.ts +7 -0
- package/{src/utils/earcut.ts → lib/js/utils/earcut.js} +95 -223
- package/lib/js/utils/objParser.d.ts +24 -0
- package/{src/utils/objParser.ts → lib/js/utils/objParser.js} +38 -93
- package/lib/js/utils/shared.d.ts +267 -0
- package/{src/utils/shared.ts → lib/js/utils/shared.js} +184 -341
- package/lib/js/utils/units.d.ts +16 -0
- package/lib/js/utils/units.js +61 -0
- package/lib/js/webgl/BaseFramebuffer.d.ts +53 -0
- package/{src/webgl/BaseFramebuffer.ts → lib/js/webgl/BaseFramebuffer.js} +22 -59
- package/lib/js/webgl/Framebuffer.d.ts +69 -0
- package/{src/webgl/Framebuffer.ts → lib/js/webgl/Framebuffer.js} +30 -87
- package/lib/js/webgl/Handler.d.ts +473 -0
- package/{src/webgl/Handler.ts → lib/js/webgl/Handler.js} +175 -586
- package/lib/js/webgl/Multisample.d.ts +27 -0
- package/lib/js/webgl/Multisample.js +77 -0
- package/lib/js/webgl/Program.d.ts +159 -0
- package/{src/webgl/Program.ts → lib/js/webgl/Program.js} +73 -210
- package/lib/js/webgl/ProgramController.d.ts +86 -0
- package/{src/webgl/ProgramController.ts → lib/js/webgl/ProgramController.js} +11 -45
- package/{src/webgl/index.ts → lib/js/webgl/index.d.ts} +1 -8
- package/lib/js/webgl/index.js +6 -0
- package/lib/js/webgl/types.d.ts +9 -0
- package/{src/webgl/types.ts → lib/js/webgl/types.js} +5 -8
- package/lib/js/webgl/variableHandlers.d.ts +22 -0
- package/lib/js/webgl/variableHandlers.js +78 -0
- package/package.json +23 -34
- package/dist/@openglobus/og.esm.js +0 -2
- package/dist/@openglobus/og.esm.js.map +0 -1
- package/dist/@openglobus/og.umd.js +0 -2
- package/dist/@openglobus/og.umd.js.map +0 -1
- package/src/Deferred.ts +0 -17
- package/src/control/MouseWheelZoomControl.ts +0 -269
- package/src/control/ScaleControl.ts +0 -131
- package/src/control/SegmentBoundVisualization.ts +0 -50
- package/src/control/ShowFps.ts +0 -28
- package/src/control/ToggleWireframe.ts +0 -35
- package/src/control/ruler/Ruler.ts +0 -35
- package/src/control/ruler/RulerScene.ts +0 -437
- package/src/control/timeline/timelineUtils.ts +0 -133
- package/src/ellipsoid/index.ts +0 -4
- package/src/entity/Geometry.ts +0 -486
- package/src/index.ts +0 -173
- package/src/layer/GeoTexture2d.ts +0 -56
- package/src/layer/index.ts +0 -12
- package/src/math/Line3.ts +0 -162
- package/src/math/index.ts +0 -26
- package/src/quadTree/EPSG4326QuadTreeStrategy.ts +0 -24
- package/src/quadTree/EarthQuadTreeStrategy.ts +0 -28
- package/src/quadTree/MarsQuadTreeStrategy.ts +0 -25
- package/src/quadTree/Wgs84QuadTreeStrategy.ts +0 -22
- package/src/quadTree/index.ts +0 -14
- package/src/scene/Axes.ts +0 -78
- package/src/segment/SegmentLonLatWgs84.ts +0 -33
- package/src/terrain/Geoid.ts +0 -273
- package/src/ui/Button.ts +0 -121
- package/src/ui/ButtonGroup.ts +0 -63
- package/src/ui/Dialog.ts +0 -244
- package/src/ui/Slider.ts +0 -188
- package/src/ui/ToggleButton.ts +0 -68
- package/src/utils/Loader.ts +0 -247
- package/src/utils/units.ts +0 -78
- package/src/webgl/Multisample.ts +0 -153
- package/src/webgl/variableHandlers.ts +0 -114
- /package/{dist → lib}/@openglobus/og.css +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.js +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.json +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.cfg +0 -0
- /package/{dist → lib}/@openglobus/res/fonts/arial.ttf.png +0 -0
- /package/{dist → lib}/@openglobus/res/night-4326.png +0 -0
- /package/{dist → lib}/@openglobus/res/night.png +0 -0
- /package/{dist → lib}/@openglobus/res/spec.png +0 -0
|
@@ -1,20 +1,5 @@
|
|
|
1
|
-
import {binarySearchFast
|
|
2
|
-
import {Geoid} from "./Geoid";
|
|
3
|
-
import {LonLat} from "../LonLat";
|
|
4
|
-
import {Planet} from "../scene/Planet";
|
|
5
|
-
import {Segment} from "../segment/Segment";
|
|
6
|
-
|
|
7
|
-
export interface IEmptyTerrainParams {
|
|
8
|
-
equalizeVertices?: boolean;
|
|
9
|
-
name?: string;
|
|
10
|
-
minZoom?: number;
|
|
11
|
-
maxZoom?: number;
|
|
12
|
-
maxNativeZoom?: number;
|
|
13
|
-
geoidSrc?: string;
|
|
14
|
-
geoid?: Geoid;
|
|
15
|
-
gridSizeByZoom?: number[]
|
|
16
|
-
}
|
|
17
|
-
|
|
1
|
+
import { binarySearchFast } from "../utils/shared";
|
|
2
|
+
import { Geoid } from "./Geoid";
|
|
18
3
|
/**
|
|
19
4
|
* Class represents terrain provider without elevation data.
|
|
20
5
|
* @param {IEmptyTerrainParams} [options] - Provider options:
|
|
@@ -29,202 +14,93 @@ export interface IEmptyTerrainParams {
|
|
|
29
14
|
* @param {string} [options.geoidSrc] -
|
|
30
15
|
*/
|
|
31
16
|
class EmptyTerrain {
|
|
32
|
-
|
|
33
|
-
static __counter__: number = 0;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Uniq identifier.
|
|
37
|
-
* @public
|
|
38
|
-
* @type {number}
|
|
39
|
-
*/
|
|
40
|
-
public __id: number;
|
|
41
|
-
|
|
42
|
-
public equalizeVertices: boolean;
|
|
43
|
-
|
|
44
|
-
public equalizeNormals: boolean;
|
|
45
|
-
|
|
46
|
-
public isEmpty: boolean;
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Provider name is "empty"
|
|
50
|
-
* @public
|
|
51
|
-
* @type {string}
|
|
52
|
-
*/
|
|
53
|
-
public name: string;
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Minimal z-index value for segment elevation data handling.
|
|
57
|
-
* @public
|
|
58
|
-
* @type {number}
|
|
59
|
-
*/
|
|
60
|
-
public minZoom: number;
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Maximal z-index value for segment elevation data handling.
|
|
64
|
-
* @public
|
|
65
|
-
* @type {number}
|
|
66
|
-
*/
|
|
67
|
-
public maxZoom: number;
|
|
68
|
-
|
|
69
|
-
public noDataValues: number[];
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Maximal existent available zoom
|
|
73
|
-
* @type {number}
|
|
74
|
-
*/
|
|
75
|
-
public maxNativeZoom: number;
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* @public
|
|
79
|
-
* @type {Array.<number>}
|
|
80
|
-
*/
|
|
81
|
-
public gridSizeByZoom: number[];
|
|
82
|
-
|
|
83
|
-
public _maxNodeZoom: number;
|
|
84
|
-
|
|
85
|
-
/**
|
|
86
|
-
* Elevation grid size. Current is 2x2 is the smallest grid size.
|
|
87
|
-
* @public
|
|
88
|
-
* @type {number}
|
|
89
|
-
*/
|
|
90
|
-
public plainGridSize: number;
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Planet scene.
|
|
94
|
-
* @public
|
|
95
|
-
* @type {Planet}
|
|
96
|
-
*/
|
|
97
|
-
public _planet: Planet | null;
|
|
98
|
-
|
|
99
|
-
public _geoid: Geoid;
|
|
100
|
-
|
|
101
|
-
public _isReady: boolean;
|
|
102
|
-
|
|
103
|
-
constructor(options: IEmptyTerrainParams = {}) {
|
|
104
|
-
|
|
17
|
+
constructor(options = {}) {
|
|
105
18
|
this.__id = EmptyTerrain.__counter__++;
|
|
106
|
-
|
|
107
19
|
this.equalizeVertices = options.equalizeVertices || false;
|
|
108
|
-
|
|
109
20
|
this.equalizeNormals = false;
|
|
110
|
-
|
|
111
21
|
this.isEmpty = true;
|
|
112
|
-
|
|
113
22
|
this.name = options.name || "empty";
|
|
114
|
-
|
|
115
23
|
this.minZoom = options.minZoom || 2;
|
|
116
|
-
|
|
117
24
|
this.maxZoom = options.maxZoom || 19;
|
|
118
|
-
|
|
119
25
|
this.maxNativeZoom = options.maxNativeZoom || this.maxZoom;
|
|
120
|
-
|
|
121
26
|
this.gridSizeByZoom = options.gridSizeByZoom || [
|
|
122
27
|
64, 32, 16, 8, 4, 4, 4, 4, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2
|
|
123
28
|
];
|
|
124
|
-
|
|
125
29
|
this._maxNodeZoom = this.gridSizeByZoom.length - 1;
|
|
126
|
-
|
|
127
30
|
this.plainGridSize = 2;
|
|
128
|
-
|
|
129
31
|
this.noDataValues = [];
|
|
130
|
-
|
|
131
32
|
this._planet = null;
|
|
132
|
-
|
|
133
33
|
this._geoid = options.geoid || new Geoid({
|
|
134
34
|
src: options.geoidSrc || null
|
|
135
35
|
});
|
|
136
|
-
|
|
137
36
|
this._isReady = false;
|
|
138
|
-
|
|
139
37
|
// const _ellToAltFn = [
|
|
140
38
|
// (lon, lat, alt, callback) => callback(alt),
|
|
141
39
|
// (lon, lat, alt, callback) => callback(alt - this._geoid.getHeight(lon, lat)),
|
|
142
40
|
// (lon, lat, alt, callback) => {
|
|
143
|
-
|
|
144
41
|
// let x = mercator.getTileX(lon, zoom),
|
|
145
42
|
// y = mercator.getTileY(lat, zoom);
|
|
146
|
-
|
|
147
43
|
// let mslAlt = alt - this._geoid.getHeight(lon, lat);
|
|
148
|
-
|
|
149
44
|
// if (true) {
|
|
150
|
-
|
|
151
45
|
// } else {
|
|
152
|
-
|
|
153
46
|
// }
|
|
154
|
-
|
|
155
47
|
// return callback(mslAlt);
|
|
156
48
|
// },
|
|
157
49
|
// ];
|
|
158
50
|
}
|
|
159
|
-
|
|
160
|
-
public get isIdle(): boolean {
|
|
51
|
+
get isIdle() {
|
|
161
52
|
return true;
|
|
162
53
|
}
|
|
163
|
-
|
|
164
|
-
public isEqual(obj: this): boolean {
|
|
54
|
+
isEqual(obj) {
|
|
165
55
|
return obj.__id === this.__id;
|
|
166
56
|
}
|
|
167
|
-
|
|
168
|
-
static checkNoDataValue(noDataValues: number[] | TypedArray, value: number): boolean {
|
|
57
|
+
static checkNoDataValue(noDataValues, value) {
|
|
169
58
|
return binarySearchFast(noDataValues, value) !== -1;
|
|
170
59
|
}
|
|
171
|
-
|
|
172
|
-
public isBlur(segment?: Segment): boolean {
|
|
60
|
+
isBlur(segment) {
|
|
173
61
|
return false;
|
|
174
62
|
}
|
|
175
|
-
|
|
176
|
-
public set maxNodeZoom(val: number) {
|
|
63
|
+
set maxNodeZoom(val) {
|
|
177
64
|
if (val > this.gridSizeByZoom.length - 1) {
|
|
178
65
|
val = this.gridSizeByZoom.length - 1;
|
|
179
66
|
}
|
|
180
67
|
this._maxNodeZoom = val;
|
|
181
68
|
}
|
|
182
|
-
|
|
183
|
-
public get maxNodeZoom(): number {
|
|
69
|
+
get maxNodeZoom() {
|
|
184
70
|
return this._maxNodeZoom;
|
|
185
71
|
}
|
|
186
|
-
|
|
187
|
-
public set geoid(geoid: Geoid) {
|
|
72
|
+
set geoid(geoid) {
|
|
188
73
|
this._geoid = geoid;
|
|
189
74
|
}
|
|
190
|
-
|
|
191
|
-
public get geoid(): Geoid {
|
|
75
|
+
get geoid() {
|
|
192
76
|
return this._geoid;
|
|
193
77
|
}
|
|
194
|
-
|
|
195
|
-
public getGeoid(): Geoid {
|
|
78
|
+
getGeoid() {
|
|
196
79
|
return this._geoid;
|
|
197
80
|
}
|
|
198
|
-
|
|
199
81
|
/**
|
|
200
82
|
* Loads or creates segment elevation data.
|
|
201
83
|
* @public
|
|
202
84
|
* @param {Segment} segment - Segment to create elevation data.
|
|
203
85
|
*/
|
|
204
|
-
|
|
86
|
+
handleSegmentTerrain(segment) {
|
|
205
87
|
segment.terrainIsLoading = false;
|
|
206
88
|
segment.terrainReady = true;
|
|
207
89
|
segment.terrainExists = true;
|
|
208
90
|
}
|
|
209
|
-
|
|
210
|
-
public isReady(): boolean {
|
|
91
|
+
isReady() {
|
|
211
92
|
return this._isReady;
|
|
212
93
|
}
|
|
213
|
-
|
|
214
|
-
public abortLoading() {
|
|
94
|
+
abortLoading() {
|
|
215
95
|
}
|
|
216
|
-
|
|
217
|
-
public clearCache() {
|
|
96
|
+
clearCache() {
|
|
218
97
|
}
|
|
219
|
-
|
|
220
|
-
public getHeightAsync(lonLat: LonLat, callback: (height: number) => void): boolean {
|
|
98
|
+
getHeightAsync(lonLat, callback) {
|
|
221
99
|
callback(0);
|
|
222
100
|
return true;
|
|
223
101
|
}
|
|
224
|
-
|
|
225
|
-
public loadTerrain(segment: Segment, forceLoading: boolean = false) {
|
|
226
|
-
|
|
102
|
+
loadTerrain(segment, forceLoading = false) {
|
|
227
103
|
}
|
|
228
104
|
}
|
|
229
|
-
|
|
230
|
-
export {EmptyTerrain};
|
|
105
|
+
EmptyTerrain.__counter__ = 0;
|
|
106
|
+
export { EmptyTerrain };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { LonLat } from "../LonLat";
|
|
2
|
+
interface IGeoidParams {
|
|
3
|
+
model?: GeoidModel;
|
|
4
|
+
src?: string | null;
|
|
5
|
+
}
|
|
6
|
+
export type GeoidModel = {
|
|
7
|
+
scale: number;
|
|
8
|
+
offset: number;
|
|
9
|
+
width: number;
|
|
10
|
+
height: number;
|
|
11
|
+
rlonres: number;
|
|
12
|
+
rlatres: number;
|
|
13
|
+
i: number;
|
|
14
|
+
rawfile: Uint8Array;
|
|
15
|
+
};
|
|
16
|
+
declare class Geoid {
|
|
17
|
+
model: GeoidModel | null;
|
|
18
|
+
src: string | null;
|
|
19
|
+
protected _cached_ix: number;
|
|
20
|
+
protected _cached_iy: number;
|
|
21
|
+
protected _v00: number;
|
|
22
|
+
protected _v01: number;
|
|
23
|
+
protected _v10: number;
|
|
24
|
+
protected _v11: number;
|
|
25
|
+
protected _t: number;
|
|
26
|
+
constructor(options?: IGeoidParams);
|
|
27
|
+
static loadModel(url?: string | null): Promise<GeoidModel | null>;
|
|
28
|
+
setModel(model: GeoidModel | null): void;
|
|
29
|
+
protected _rawval(ix: number, iy: number): number;
|
|
30
|
+
getHeightLonLat(lonlat: LonLat): number;
|
|
31
|
+
getHeight(lon: number, lat: number): number;
|
|
32
|
+
}
|
|
33
|
+
export { Geoid };
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
/* This file is mostly a straight translation of
|
|
2
|
+
* GeographicLib/src/Geoid.cpp from C++ to JavaScript
|
|
3
|
+
* by Kim Vandry <vandry@TZoNE.ORG>
|
|
4
|
+
*
|
|
5
|
+
* @license
|
|
6
|
+
* **
|
|
7
|
+
* * \file Geoid.cpp
|
|
8
|
+
* * \brief Implementation for GeographicLib::Geoid class
|
|
9
|
+
* *
|
|
10
|
+
* * Copyright (c) Charles Karney (2009) <charles@karney.com>
|
|
11
|
+
* * and licensed under the LGPL. For more information, see
|
|
12
|
+
* * http://geographiclib.sourceforge.net/
|
|
13
|
+
* **********************************************************************
|
|
14
|
+
*
|
|
15
|
+
* Geoid height grade not supported
|
|
16
|
+
* The files can be downloaded from here:
|
|
17
|
+
* http://geographiclib.sourceforge.net/1.18/geoid.html
|
|
18
|
+
*/
|
|
19
|
+
class Geoid {
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
this.model = options.model || null;
|
|
22
|
+
this.src = options.src || null;
|
|
23
|
+
this._cached_ix = 0;
|
|
24
|
+
this._cached_iy = 0;
|
|
25
|
+
this._v00 = 0;
|
|
26
|
+
this._v01 = 0;
|
|
27
|
+
this._v10 = 0;
|
|
28
|
+
this._v11 = 0;
|
|
29
|
+
this._t = 0;
|
|
30
|
+
}
|
|
31
|
+
static loadModel(url) {
|
|
32
|
+
if (!url) {
|
|
33
|
+
return new Promise((resolve) => {
|
|
34
|
+
resolve(null);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
else
|
|
38
|
+
return fetch(url, {})
|
|
39
|
+
.then((r) => {
|
|
40
|
+
if (!r.ok) {
|
|
41
|
+
throw Error("Geoid model file: HTTP error " + r.status);
|
|
42
|
+
}
|
|
43
|
+
return r.arrayBuffer();
|
|
44
|
+
})
|
|
45
|
+
.then((r) => {
|
|
46
|
+
if (r) {
|
|
47
|
+
return new Uint8Array(r);
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
throw Error("Geoid model file: no data from " + url);
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
.then(function (rawfile) {
|
|
54
|
+
if (!((rawfile[0] === 80) && (rawfile[1] === 53) && (((rawfile[2] === 13) && (rawfile[3] === 10)) ||
|
|
55
|
+
(rawfile[2] === 10)))) {
|
|
56
|
+
throw new Error("Geoid model file: no PGM header");
|
|
57
|
+
}
|
|
58
|
+
var i = (rawfile[2] === 13) ? 4 : 3;
|
|
59
|
+
var offset = null;
|
|
60
|
+
var scale = null;
|
|
61
|
+
function getline() {
|
|
62
|
+
let start = i;
|
|
63
|
+
for (var j = i;; j++) {
|
|
64
|
+
if (j >= rawfile.length) {
|
|
65
|
+
throw new Error("Geoid model file: missing newline in header");
|
|
66
|
+
}
|
|
67
|
+
if (rawfile[j] === 10) {
|
|
68
|
+
i = j + 1;
|
|
69
|
+
break;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
if ((j > start) && (rawfile[j - 1] === 13))
|
|
73
|
+
j--;
|
|
74
|
+
return String.fromCharCode.apply(null, rawfile.slice(start, j));
|
|
75
|
+
}
|
|
76
|
+
var m, s;
|
|
77
|
+
for (;;) {
|
|
78
|
+
s = getline();
|
|
79
|
+
if (s[0] !== '#')
|
|
80
|
+
break;
|
|
81
|
+
m = s.match(/^# Offset (.*)$/);
|
|
82
|
+
if (m) {
|
|
83
|
+
offset = parseInt(m[1], 10);
|
|
84
|
+
if (!isFinite(offset)) {
|
|
85
|
+
throw new Error("Geoid model file: bad offset " + m[1]);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
m = s.match(/^# Scale (.*)$/);
|
|
90
|
+
if (m) {
|
|
91
|
+
scale = parseFloat(m[1]);
|
|
92
|
+
if (!isFinite(scale)) {
|
|
93
|
+
throw new Error("Geoid model file: bad scale " + m[1]);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
m = s.match(/^\s*(\d+)\s+(\d+)\s*$/);
|
|
99
|
+
let width = 0;
|
|
100
|
+
let height = 0;
|
|
101
|
+
if (m) {
|
|
102
|
+
width = parseInt(m[1], 10);
|
|
103
|
+
height = parseInt(m[2], 10);
|
|
104
|
+
}
|
|
105
|
+
if (!(m && (width >= 0) && (height >= 0))) {
|
|
106
|
+
throw new Error("Geoid model file: bad PGM width&height line");
|
|
107
|
+
}
|
|
108
|
+
let levels = parseInt(getline());
|
|
109
|
+
if (levels != 65535) {
|
|
110
|
+
throw new Error("Geoid model file: PGM file must have 65535 gray levels");
|
|
111
|
+
}
|
|
112
|
+
if (offset === null) {
|
|
113
|
+
throw new Error("Geoid model file: PGM file does not contain offset");
|
|
114
|
+
}
|
|
115
|
+
if (scale === null) {
|
|
116
|
+
throw new Error("Geoid model file: PGM file does not contain scale");
|
|
117
|
+
}
|
|
118
|
+
if ((width < 2) || (height < 2)) {
|
|
119
|
+
throw new Error("Geoid model file: Raster size too small");
|
|
120
|
+
}
|
|
121
|
+
let payload_len = rawfile.length - i;
|
|
122
|
+
if (payload_len !== (width * height * 2)) {
|
|
123
|
+
throw new Error("Geoid model file: File has the wrong length");
|
|
124
|
+
}
|
|
125
|
+
return {
|
|
126
|
+
scale: scale,
|
|
127
|
+
offset: offset,
|
|
128
|
+
width: width,
|
|
129
|
+
height: height,
|
|
130
|
+
rlonres: width / 360,
|
|
131
|
+
rlatres: (height - 1) / 180,
|
|
132
|
+
i: i,
|
|
133
|
+
rawfile: rawfile
|
|
134
|
+
};
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
setModel(model) {
|
|
138
|
+
this.model = model;
|
|
139
|
+
}
|
|
140
|
+
_rawval(ix, iy) {
|
|
141
|
+
let model = this.model;
|
|
142
|
+
if (iy < 0) {
|
|
143
|
+
iy = -iy;
|
|
144
|
+
ix += model.width / 2;
|
|
145
|
+
}
|
|
146
|
+
else if (iy >= model.height) {
|
|
147
|
+
iy = 2 * (model.height - 1) - iy;
|
|
148
|
+
ix += model.width / 2;
|
|
149
|
+
}
|
|
150
|
+
if (ix < 0) {
|
|
151
|
+
ix += model.width;
|
|
152
|
+
}
|
|
153
|
+
else if (ix >= model.width) {
|
|
154
|
+
ix -= model.width;
|
|
155
|
+
}
|
|
156
|
+
let k = (iy * model.width + ix) * 2 + model.i;
|
|
157
|
+
return (model.rawfile[k] << 8) | model.rawfile[k + 1];
|
|
158
|
+
}
|
|
159
|
+
getHeightLonLat(lonlat) {
|
|
160
|
+
return this.getHeight(lonlat.lon, lonlat.lat);
|
|
161
|
+
}
|
|
162
|
+
getHeight(lon, lat) {
|
|
163
|
+
if (!this.model)
|
|
164
|
+
return 0;
|
|
165
|
+
let model = this.model;
|
|
166
|
+
if (lon < 0)
|
|
167
|
+
lon += 360.0;
|
|
168
|
+
let fy = (90 - lat) * model.rlatres;
|
|
169
|
+
let fx = lon * model.rlonres;
|
|
170
|
+
let iy = Math.floor(fy);
|
|
171
|
+
let ix = Math.floor(fx);
|
|
172
|
+
fx -= ix;
|
|
173
|
+
fy -= iy;
|
|
174
|
+
if (iy === (model.height - 1)) {
|
|
175
|
+
iy--;
|
|
176
|
+
}
|
|
177
|
+
if ((this._cached_ix !== ix) || (this._cached_iy !== iy)) {
|
|
178
|
+
this._cached_ix = ix;
|
|
179
|
+
this._cached_iy = iy;
|
|
180
|
+
this._v00 = this._rawval(ix, iy);
|
|
181
|
+
this._v01 = this._rawval(ix + 1, iy);
|
|
182
|
+
this._v10 = this._rawval(ix, iy + 1);
|
|
183
|
+
this._v11 = this._rawval(ix + 1, iy + 1);
|
|
184
|
+
}
|
|
185
|
+
let a = (1 - fx) * this._v00 + fx * this._v01;
|
|
186
|
+
let b = (1 - fx) * this._v10 + fx * this._v11;
|
|
187
|
+
let h = (1 - fy) * a + fy * b;
|
|
188
|
+
return model.offset + model.scale * h;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
export { Geoid };
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
import { EventsHandler } from "../Events";
|
|
2
|
+
import { TypedArray } from "../utils/shared";
|
|
3
|
+
import { EmptyTerrain, IEmptyTerrainParams } from "./EmptyTerrain";
|
|
4
|
+
import { Extent } from "../Extent";
|
|
5
|
+
import { Loader } from "../utils/Loader";
|
|
6
|
+
import { LonLat } from "../LonLat";
|
|
7
|
+
import { Segment } from "../segment/Segment";
|
|
8
|
+
export interface IGlobusTerrainParams extends IEmptyTerrainParams {
|
|
9
|
+
subdomains?: string[];
|
|
10
|
+
url?: string;
|
|
11
|
+
extent?: Extent | [[number, number], [number, number]];
|
|
12
|
+
urlRewrite?: UrlRewriteFunc;
|
|
13
|
+
noDataValues?: number[];
|
|
14
|
+
plainGridSize?: number;
|
|
15
|
+
}
|
|
16
|
+
type TileData = {
|
|
17
|
+
heights: number[] | TypedArray | null;
|
|
18
|
+
extent: Extent | null;
|
|
19
|
+
};
|
|
20
|
+
type UrlRewriteFunc = (segment: Segment, url: string) => string;
|
|
21
|
+
/**
|
|
22
|
+
* Class that loads segment elevation data, converts it to the array and passes it to the planet segment.
|
|
23
|
+
* @class
|
|
24
|
+
* @extends {GlobusTerrain}
|
|
25
|
+
* @param {string} [name=""] - Terrain provider name.
|
|
26
|
+
* @param {IGlobusTerrainParams} [options] - Provider options:
|
|
27
|
+
* @param {number} [options.minZoom=3] - Minimal visible zoom index when terrain handler works.
|
|
28
|
+
* @param {number} [options.minZoom=14] - Maximal visible zoom index when terrain handler works.
|
|
29
|
+
* @param {number} [options.minNativeZoom=14] - Maximal available terrain zoom level.
|
|
30
|
+
* @param {string} [options.url="//openglobus.org/heights/srtm3/{z}/{y}/{x}.ddm"] - Terrain source path url template. Default is openglobus ddm elevation file.
|
|
31
|
+
* @param {Array.<number>} [options.gridSizeByZoom] - Array of segment triangulation grid sizes where array index agreed to the segment zoom index.
|
|
32
|
+
* @param {number} [options.plainGridSize=32] - Elevation grid size. Default is 32x32. Must be power of two.
|
|
33
|
+
* @param {string} [options.responseType="arraybuffer"] - Response type.
|
|
34
|
+
* @param {number} [options.MAX_LOADING_TILES] - Maximum at one time loading tiles.
|
|
35
|
+
* @param {Array.<number>} [gridSizeByZoom] - Array of values, where each value corresponds to the size of a tile(or segment) on the globe. Each value must be power of two.
|
|
36
|
+
*
|
|
37
|
+
* @fires GlobusTerrainEvents#load
|
|
38
|
+
* @fires GlobusTerrainEvents#loadend
|
|
39
|
+
*/
|
|
40
|
+
declare class GlobusTerrain extends EmptyTerrain {
|
|
41
|
+
events: GlobusTerrainEvents;
|
|
42
|
+
protected _s: string[];
|
|
43
|
+
protected _requestCount: number;
|
|
44
|
+
protected _requestsPeerSubdomain: number;
|
|
45
|
+
/**
|
|
46
|
+
* Terrain source path url template.
|
|
47
|
+
* @protected
|
|
48
|
+
* @type {string}
|
|
49
|
+
*/
|
|
50
|
+
protected url: string;
|
|
51
|
+
protected _extent: Extent;
|
|
52
|
+
protected _dataType: string;
|
|
53
|
+
protected _elevationCache: Record<string, TileData>;
|
|
54
|
+
protected _fetchCache: Record<string, Promise<any>>;
|
|
55
|
+
protected _loader: Loader<GlobusTerrain>;
|
|
56
|
+
/**
|
|
57
|
+
* Rewrites elevation storage url query.
|
|
58
|
+
* @protected
|
|
59
|
+
* @type {Function} -
|
|
60
|
+
*/
|
|
61
|
+
protected _urlRewriteCallback: UrlRewriteFunc | null;
|
|
62
|
+
constructor(name?: string, options?: IGlobusTerrainParams);
|
|
63
|
+
get loader(): Loader<GlobusTerrain>;
|
|
64
|
+
clearCache(): void;
|
|
65
|
+
isBlur(segment: Segment): boolean;
|
|
66
|
+
getHeightAsync(lonLat: LonLat, callback: (h: number) => void, zoom?: number, firstAttempt?: boolean): boolean;
|
|
67
|
+
getTileCache(lonLat: LonLat, z: number): TileData | undefined;
|
|
68
|
+
protected _getGroundHeightMerc(merc: LonLat, tileData: TileData): number;
|
|
69
|
+
/**
|
|
70
|
+
* Stop loading.
|
|
71
|
+
* @public
|
|
72
|
+
*/
|
|
73
|
+
abortLoading(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Sets terrain data url template.
|
|
76
|
+
* @public
|
|
77
|
+
* @param {string} url - Url template.
|
|
78
|
+
* @example <caption>Default openglobus url template:</caption>:
|
|
79
|
+
* "http://earth3.openglobus.org/{z}/{y}/{x}.ddm"
|
|
80
|
+
*/
|
|
81
|
+
setUrl(url: string): void;
|
|
82
|
+
/**
|
|
83
|
+
* Sets provider name.
|
|
84
|
+
* @public
|
|
85
|
+
* @param {string} name - Name.
|
|
86
|
+
*/
|
|
87
|
+
setName(name: string): void;
|
|
88
|
+
isReadyToLoad(segment: Segment): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Starts to load segment elevation data.
|
|
91
|
+
* @public
|
|
92
|
+
* @param {Segment} segment - Segment that wants a terrain data.
|
|
93
|
+
* @param {boolean} [forceLoading] -
|
|
94
|
+
*/
|
|
95
|
+
loadTerrain(segment: Segment, forceLoading?: boolean): void;
|
|
96
|
+
protected _getSubdomain(): string;
|
|
97
|
+
_buildURL(x: number, y: number, z: number): string;
|
|
98
|
+
/**
|
|
99
|
+
* Creates default query url string.
|
|
100
|
+
* @protected
|
|
101
|
+
* @param {Segment} segment -
|
|
102
|
+
* @returns {string} -
|
|
103
|
+
*/
|
|
104
|
+
protected _createUrl(segment: Segment): string;
|
|
105
|
+
/**
|
|
106
|
+
* Returns actual url query string.
|
|
107
|
+
* @protected
|
|
108
|
+
* @param {Segment} segment - Segment that loads image data.
|
|
109
|
+
* @returns {string} - Url string.
|
|
110
|
+
*/
|
|
111
|
+
protected _getHTTPRequestString(segment: Segment): string;
|
|
112
|
+
/**
|
|
113
|
+
* Sets url rewrite callback, used for custom url rewriting for every tile loading.
|
|
114
|
+
* @public
|
|
115
|
+
* @param {UrlRewriteFunc} ur - The callback that returns tile custom created url.
|
|
116
|
+
*/
|
|
117
|
+
setUrlRewriteCallback(ur: UrlRewriteFunc): void;
|
|
118
|
+
/**
|
|
119
|
+
* Converts loaded data to segment elevation data type(column major elevation data array in meters)
|
|
120
|
+
* @public
|
|
121
|
+
* @returns {Array.<number>} -
|
|
122
|
+
*/
|
|
123
|
+
protected _createHeights(data: any, tileIndex?: string, x?: number, y?: number, z?: number, extent?: Extent, isMaxZoom?: boolean): TypedArray | number[];
|
|
124
|
+
/**
|
|
125
|
+
* @protected
|
|
126
|
+
*/
|
|
127
|
+
protected _applyElevationsData(segment: Segment, elevations: number[] | TypedArray | null): void;
|
|
128
|
+
}
|
|
129
|
+
type GlobusTerrainEventsList = [
|
|
130
|
+
"load",
|
|
131
|
+
"loadend"
|
|
132
|
+
];
|
|
133
|
+
type GlobusTerrainEvents = EventsHandler<GlobusTerrainEventsList>;
|
|
134
|
+
export { GlobusTerrain };
|