@openglobus/og 0.17.2 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +75 -46
  2. package/dist/@openglobus/og.esm.js +1 -20
  3. package/dist/@openglobus/og.esm.js.map +1 -1
  4. package/dist/@openglobus/og.umd.js +1 -20
  5. package/dist/@openglobus/og.umd.js.map +1 -1
  6. package/dist/@openglobus/res/fonts/Karla-Bold.json +5252 -0
  7. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.cfg +920 -0
  8. package/dist/@openglobus/res/fonts/Karla-Bold.ttf.png +0 -0
  9. package/dist/@openglobus/res/fonts/Karla-Light.json +5252 -0
  10. package/dist/@openglobus/res/fonts/Karla-Light.ttf.cfg +830 -0
  11. package/dist/@openglobus/res/fonts/Karla-Light.ttf.png +0 -0
  12. package/dist/@openglobus/res/fonts/Karla-Medium.json +5252 -0
  13. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.cfg +1196 -0
  14. package/dist/@openglobus/res/fonts/Karla-Medium.ttf.png +0 -0
  15. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.json +3332 -0
  16. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.cfg +1370 -0
  17. package/dist/@openglobus/res/fonts/NotoSansArabic-Regular.ttf.png +0 -0
  18. package/dist/@openglobus/res/fonts/Roboto-Regular.json +37147 -0
  19. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.cfg +1340 -0
  20. package/dist/@openglobus/res/fonts/Roboto-Regular.ttf.png +0 -0
  21. package/dist/@openglobus/res/fonts/arial.json +4321 -0
  22. package/dist/@openglobus/res/fonts/arial.ttf.cfg +1570 -0
  23. package/dist/@openglobus/res/fonts/arial.ttf.png +0 -0
  24. package/dist/@openglobus/res/night-4326.png +0 -0
  25. package/dist/@openglobus/res/night.png +0 -0
  26. package/dist/@openglobus/res/spec.png +0 -0
  27. package/package.json +25 -23
  28. package/src/{og/Clock.js → Clock.ts} +100 -78
  29. package/src/Deferred.ts +17 -0
  30. package/src/Events.ts +200 -0
  31. package/src/{og/Extent.js → Extent.ts} +324 -352
  32. package/src/Globe.ts +363 -0
  33. package/src/{og/ImageCanvas.js → ImageCanvas.ts} +244 -236
  34. package/src/Lock.ts +41 -0
  35. package/src/{og/LonLat.js → LonLat.ts} +50 -47
  36. package/src/{og/Object3d.js → Object3d.ts} +89 -55
  37. package/src/Popup.ts +228 -0
  38. package/src/{og/QueueArray.js → QueueArray.ts} +76 -75
  39. package/src/{og/Rectangle.js → Rectangle.ts} +115 -111
  40. package/src/Stack.ts +58 -0
  41. package/src/{og/astro/astro.js → astro/astro.ts} +49 -51
  42. package/src/{og/astro/earth.js → astro/earth.ts} +8 -9
  43. package/src/{og/astro/jd.js → astro/jd.ts} +92 -111
  44. package/src/{og/astro/orbit.js → astro/orbit.ts} +35 -37
  45. package/src/{og/astro/rotation.js → astro/rotation.ts} +4 -6
  46. package/src/{og/bv/Box.js → bv/Box.ts} +21 -17
  47. package/src/{og/bv/Sphere.js → bv/Sphere.ts} +21 -19
  48. package/src/bv/index.ts +4 -0
  49. package/src/{og/camera/Camera.js → camera/Camera.ts} +254 -197
  50. package/src/{og/camera/Frustum.js → camera/Frustum.ts} +137 -111
  51. package/src/{og/camera/PlanetCamera.js → camera/PlanetCamera.ts} +246 -182
  52. package/src/camera/index.ts +4 -0
  53. package/src/{og/cons.js → cons.ts} +14 -18
  54. package/src/{og/control/Atmosphere.js → control/Atmosphere.ts} +50 -50
  55. package/src/{og/control/CompassButton.js → control/CompassButton.ts} +27 -30
  56. package/src/{og/control/Control.js → control/Control.ts} +76 -70
  57. package/src/{og/control/DebugInfo.js → control/DebugInfo.ts} +130 -62
  58. package/src/{og/control/DrawingSwitcher.js → control/DrawingSwitcher.ts} +16 -22
  59. package/src/control/EarthCoordinates.ts +222 -0
  60. package/src/control/EarthNavigation.ts +293 -0
  61. package/src/{og/control/GeoImageDragControl.js → control/GeoImageDragControl.ts} +37 -29
  62. package/src/control/KeyboardNavigation.ts +168 -0
  63. package/src/{og/control/LayerAnimation.js → control/LayerAnimation.ts} +74 -90
  64. package/src/control/LayerSwitcher.ts +76 -0
  65. package/src/{og/control/Lighting.js → control/Lighting.ts} +158 -120
  66. package/src/control/MouseNavigation.ts +468 -0
  67. package/src/control/MouseWheelZoomControl.ts +269 -0
  68. package/src/{og/control/RulerSwitcher.js → control/RulerSwitcher.ts} +18 -20
  69. package/src/control/ScaleControl.ts +131 -0
  70. package/src/control/SegmentBoundVisualization.ts +50 -0
  71. package/src/control/ShowFps.ts +28 -0
  72. package/src/control/SimpleNavigation.ts +118 -0
  73. package/src/{og/control/SimpleSkyBackground.js → control/SimpleSkyBackground.ts} +36 -38
  74. package/src/{og/control/Sun.js → control/Sun.ts} +56 -64
  75. package/src/control/ToggleWireframe.ts +35 -0
  76. package/src/control/TouchNavigation.ts +368 -0
  77. package/src/control/ZoomControl.ts +111 -0
  78. package/src/control/drawing/DrawingControl.ts +45 -0
  79. package/src/{og/control/drawing/LineStringDrawingScene.js → control/drawing/LineStringDrawingScene.ts} +28 -35
  80. package/src/{og/control/drawing/PolygonDrawingScene.js → control/drawing/PolygonDrawingScene.ts} +148 -201
  81. package/src/{og/control/elevationProfile/ElevationProfile.js → control/elevationProfile/ElevationProfile.ts} +70 -36
  82. package/src/control/heightRuler/HeightRuler.ts +16 -0
  83. package/src/{og/control/heightRuler/HeightRulerScene.js → control/heightRuler/HeightRulerScene.ts} +92 -87
  84. package/src/{og/control/heightRuler/HeightRulerSwitcher.js → control/heightRuler/HeightRulerSwitcher.ts} +3 -3
  85. package/src/control/index.ts +45 -0
  86. package/src/control/ruler/Ruler.ts +35 -0
  87. package/src/{og/control/ruler/RulerScene.js → control/ruler/RulerScene.ts} +163 -121
  88. package/src/{og/control/selection/Selection.js → control/selection/Selection.ts} +23 -21
  89. package/src/{og/control/selection/SelectionScene.js → control/selection/SelectionScene.ts} +64 -50
  90. package/src/{og/control/timeline/TimelineControl.js → control/timeline/TimelineControl.ts} +37 -28
  91. package/src/{og/control/timeline/TimelineModel.js → control/timeline/TimelineModel.ts} +50 -35
  92. package/src/{og/control/timeline/TimelineView.js → control/timeline/TimelineView.ts} +162 -113
  93. package/src/{og/control/timeline/timelineUtils.js → control/timeline/timelineUtils.ts} +11 -10
  94. package/src/{og/control → control}/visibleExtent/Segment.js +5 -5
  95. package/src/{og/control → control}/visibleExtent/VisibleExtent.js +8 -15
  96. package/src/{og/control/visibleExtent/drawnode.js → control/visibleExtent/drawnode.ts} +1 -3
  97. package/src/{og/ellipsoid/Ellipsoid.js → ellipsoid/Ellipsoid.ts} +113 -59
  98. package/src/ellipsoid/index.ts +4 -0
  99. package/src/{og/ellipsoid/wgs84.js → ellipsoid/wgs84.ts} +1 -3
  100. package/src/{og/entity/BaseBillboard.js → entity/BaseBillboard.ts} +128 -102
  101. package/src/entity/BaseBillboardHandler.ts +772 -0
  102. package/src/{og/entity/Billboard.js → entity/Billboard.ts} +77 -47
  103. package/src/entity/BillboardHandler.ts +135 -0
  104. package/src/{og/entity/Entity.js → entity/Entity.ts} +285 -226
  105. package/src/{og/entity/EntityCollection.js → entity/EntityCollection.ts} +340 -247
  106. package/src/{og/entity/GeoObject.js → entity/GeoObject.ts} +122 -67
  107. package/src/{og/entity/GeoObjectHandler.js → entity/GeoObjectHandler.ts} +273 -198
  108. package/src/entity/Geometry.ts +486 -0
  109. package/src/{og/entity/GeometryHandler.js → entity/GeometryHandler.ts} +383 -541
  110. package/src/{og/entity/Label.js → entity/Label.ts} +131 -83
  111. package/src/{og/entity/LabelHandler.js → entity/LabelHandler.ts} +289 -255
  112. package/src/{og/entity/LabelWorker.js → entity/LabelWorker.ts} +26 -36
  113. package/src/{og/entity/PointCloud.js → entity/PointCloud.ts} +200 -164
  114. package/src/entity/PointCloudHandler.ts +125 -0
  115. package/src/{og/entity/Polyline.js → entity/Polyline.ts} +517 -539
  116. package/src/{og/entity/PolylineHandler.js → entity/PolylineHandler.ts} +29 -31
  117. package/src/{og/entity/Ray.js → entity/Ray.ts} +89 -60
  118. package/src/{og/entity/RayHandler.js → entity/RayHandler.ts} +201 -306
  119. package/src/{og/entity/Strip.js → entity/Strip.ts} +143 -100
  120. package/src/{og/entity/StripHandler.js → entity/StripHandler.ts} +76 -72
  121. package/src/entity/index.ts +12 -0
  122. package/src/index.ts +173 -0
  123. package/src/input/KeyboardHandler.ts +196 -0
  124. package/src/{og/input/MouseHandler.js → input/MouseHandler.ts} +46 -35
  125. package/src/input/TouchHandler.ts +54 -0
  126. package/src/{og/input/input.js → input/input.ts} +1 -3
  127. package/src/{og/layer/BaseGeoImage.js → layer/BaseGeoImage.ts} +174 -107
  128. package/src/{og/layer/CanvasTiles.js → layer/CanvasTiles.ts} +139 -105
  129. package/src/{og/layer/GeoImage.js → layer/GeoImage.ts} +62 -52
  130. package/src/layer/GeoTexture2d.ts +56 -0
  131. package/src/{og/layer/GeoVideo.js → layer/GeoVideo.ts} +53 -53
  132. package/src/{og/layer/KML.js → layer/KML.ts} +63 -74
  133. package/src/{og/layer/Layer.js → layer/Layer.ts} +399 -223
  134. package/src/{og/layer/Material.js → layer/Material.ts} +40 -35
  135. package/src/{og/layer/Vector.js → layer/Vector.ts} +319 -267
  136. package/src/{og/layer/WMS.js → layer/WMS.ts} +76 -64
  137. package/src/{og/layer/XYZ.js → layer/XYZ.ts} +123 -98
  138. package/src/layer/index.ts +12 -0
  139. package/src/{og/light/LightSource.js → light/LightSource.ts} +132 -93
  140. package/src/{og/math/Line2.js → math/Line2.ts} +11 -8
  141. package/src/{og/math/Line3.js → math/Line3.ts} +49 -27
  142. package/src/{og/math/Mat3.js → math/Mat3.ts} +43 -27
  143. package/src/{og/math/Mat4.js → math/Mat4.ts} +110 -77
  144. package/src/{og/math/Plane.js → math/Plane.ts} +28 -23
  145. package/src/{og/math/Quat.js → math/Quat.ts} +238 -222
  146. package/src/{og/math/Ray.js → math/Ray.ts} +59 -63
  147. package/src/{og/math/Vec2.js → math/Vec2.ts} +85 -76
  148. package/src/{og/math/Vec3.js → math/Vec3.ts} +141 -140
  149. package/src/{og/math/Vec4.js → math/Vec4.ts} +64 -53
  150. package/src/{og/math/coder.js → math/coder.ts} +30 -27
  151. package/src/math/index.ts +26 -0
  152. package/src/{og/math.js → math.ts} +46 -49
  153. package/src/{og/mercator.js → mercator.ts} +143 -149
  154. package/src/{og/proj/EPSG3857.js → proj/EPSG3857.ts} +1 -3
  155. package/src/{og/proj/EPSG4326.js → proj/EPSG4326.ts} +11 -13
  156. package/src/{og/proj/Proj.js → proj/Proj.ts} +27 -23
  157. package/src/{og/quadTree/EPSG4326QuadTreeStrategy.js → quadTree/EPSG4326QuadTreeStrategy.ts} +10 -13
  158. package/src/{og/quadTree/EarthQuadTreeStrategy.js → quadTree/EarthQuadTreeStrategy.ts} +11 -13
  159. package/src/quadTree/EntityCollectionNode.ts +395 -0
  160. package/src/{og/quadTree/MarsQuadTreeStrategy.js → quadTree/MarsQuadTreeStrategy.ts} +10 -13
  161. package/src/{og/quadTree/Node.js → quadTree/Node.ts} +283 -191
  162. package/src/{og/quadTree/QuadTreeStrategy.js → quadTree/QuadTreeStrategy.ts} +35 -29
  163. package/src/quadTree/Wgs84QuadTreeStrategy.ts +22 -0
  164. package/src/quadTree/index.ts +14 -0
  165. package/src/{og/quadTree/quadTree.js → quadTree/quadTree.ts} +75 -77
  166. package/src/{og/renderer/Renderer.js → renderer/Renderer.ts} +454 -298
  167. package/src/{og/renderer/RendererEvents.js → renderer/RendererEvents.ts} +347 -256
  168. package/src/{og/scene/Axes.js → scene/Axes.ts} +26 -22
  169. package/src/{og/scene/BaseNode.js → scene/BaseNode.ts} +53 -47
  170. package/src/{og/scene/Planet.js → scene/Planet.ts} +776 -592
  171. package/src/{og/scene/RenderNode.js → scene/RenderNode.ts} +105 -91
  172. package/src/{og/scene/SkyBox.js → scene/SkyBox.ts} +29 -25
  173. package/src/scene/index.ts +6 -0
  174. package/src/{og/segment/Segment.js → segment/Segment.ts} +497 -371
  175. package/src/{og/segment/SegmentLonLat.js → segment/SegmentLonLat.ts} +81 -87
  176. package/src/{og/segment/SegmentLonLatWgs84.js → segment/SegmentLonLatWgs84.ts} +9 -16
  177. package/src/{og/segment/Slice.js → segment/Slice.ts} +15 -9
  178. package/src/{og/segment/segmentHelper.js → segment/segmentHelper.ts} +57 -49
  179. package/src/{og/shaders/atmos.js → shaders/atmos.ts} +4 -6
  180. package/src/{og/shaders/billboard.js → shaders/billboard.ts} +3 -5
  181. package/src/{og/shaders/bloom.js → shaders/bloom.ts} +2 -4
  182. package/src/{og/shaders/blur.js → shaders/blur.ts} +4 -7
  183. package/src/{og/shaders/depth.js → shaders/depth.ts} +1 -3
  184. package/src/{og/shaders/drawnode.js → shaders/drawnode.ts} +19 -21
  185. package/src/{og/shaders/geoObject.js → shaders/geoObject.ts} +17 -19
  186. package/src/{og/shaders/label.js → shaders/label.ts} +4 -6
  187. package/src/{og/shaders/lumFilter.js → shaders/lumFilter.ts} +2 -4
  188. package/src/{og/shaders/pickingMask.js → shaders/pickingMask.ts} +2 -4
  189. package/src/{og/shaders/pointCloud.js → shaders/pointCloud.ts} +7 -10
  190. package/src/{og/shaders/polyline.js → shaders/polyline.ts} +3 -200
  191. package/src/{og/shaders/ray.js → shaders/ray.ts} +2 -4
  192. package/src/{og/shaders/screenFrame.js → shaders/screenFrame.ts} +2 -4
  193. package/src/{og/shaders/skybox.js → shaders/skybox.ts} +7 -9
  194. package/src/{og/shaders/toneMapping.js → shaders/toneMapping.ts} +2 -4
  195. package/src/{og/shaders/utils.js → shaders/utils.ts} +0 -2
  196. package/src/{og/terrain/BilTerrain.js → terrain/BilTerrain.ts} +38 -32
  197. package/src/terrain/EmptyTerrain.ts +230 -0
  198. package/src/{og/terrain/Geoid.js → terrain/Geoid.ts} +67 -41
  199. package/src/{og/terrain/GlobusTerrain.js → terrain/GlobusTerrain.ts} +159 -153
  200. package/src/{og/terrain/MapboxTerrain.js → terrain/MapboxTerrain.ts} +58 -61
  201. package/src/terrain/index.ts +6 -0
  202. package/src/ui/Button.ts +121 -0
  203. package/src/ui/ButtonGroup.ts +63 -0
  204. package/src/ui/Dialog.ts +244 -0
  205. package/src/ui/Slider.ts +188 -0
  206. package/src/ui/ToggleButton.ts +68 -0
  207. package/src/{og/ui/View.js → ui/View.ts} +66 -59
  208. package/src/utils/BaseWorker.ts +60 -0
  209. package/src/utils/FontAtlas.ts +356 -0
  210. package/src/{og/utils/GeoImageCreator.js → utils/GeoImageCreator.ts} +45 -29
  211. package/src/{og/utils/ImagesCacheManager.js → utils/ImagesCacheManager.ts} +85 -70
  212. package/src/utils/Loader.ts +247 -0
  213. package/src/{og/utils/NormalMapCreator.js → utils/NormalMapCreator.ts} +114 -77
  214. package/src/{og/utils/PlainSegmentWorker.js → utils/PlainSegmentWorker.ts} +41 -24
  215. package/src/{og/utils/TerrainWorker.js → utils/TerrainWorker.ts} +51 -36
  216. package/src/utils/TextureAtlas.ts +322 -0
  217. package/src/{og/utils/VectorTileCreator.js → utils/VectorTileCreator.ts} +67 -52
  218. package/src/{og/utils/colorTable.js → utils/colorTable.ts} +142 -144
  219. package/src/{og/utils/earcut.js → utils/earcut.ts} +664 -661
  220. package/src/{og/utils/objParser.js → utils/objParser.ts} +66 -37
  221. package/src/{og/utils/shared.js → utils/shared.ts} +267 -206
  222. package/src/utils/units.ts +78 -0
  223. package/src/webgl/BaseFramebuffer.ts +125 -0
  224. package/src/webgl/Framebuffer.ts +206 -0
  225. package/src/webgl/Handler.ts +1414 -0
  226. package/src/webgl/Multisample.ts +153 -0
  227. package/src/webgl/Program.ts +451 -0
  228. package/src/{og/webgl/ProgramController.js → webgl/ProgramController.ts} +44 -43
  229. package/src/webgl/index.ts +13 -0
  230. package/src/{og/webgl/types.js → webgl/types.ts} +29 -31
  231. package/src/webgl/variableHandlers.ts +114 -0
  232. package/src/og/Deferred.js +0 -11
  233. package/src/og/Events.js +0 -185
  234. package/src/og/Globe.js +0 -342
  235. package/src/og/Lock.js +0 -44
  236. package/src/og/Popup.js +0 -187
  237. package/src/og/Stack.js +0 -49
  238. package/src/og/bv/index.js +0 -4
  239. package/src/og/camera/index.js +0 -4
  240. package/src/og/control/EarthCoordinates.js +0 -214
  241. package/src/og/control/EarthNavigation.js +0 -258
  242. package/src/og/control/KeyboardNavigation.js +0 -172
  243. package/src/og/control/LayerSwitcher.js +0 -424
  244. package/src/og/control/MouseNavigation.js +0 -436
  245. package/src/og/control/MouseWheelZoomControl.js +0 -253
  246. package/src/og/control/ScaleControl.js +0 -119
  247. package/src/og/control/SegmentBoundVisualization.js +0 -54
  248. package/src/og/control/ShowFps.js +0 -40
  249. package/src/og/control/SimpleNavigation.js +0 -123
  250. package/src/og/control/ToggleWireframe.js +0 -35
  251. package/src/og/control/TouchNavigation.js +0 -350
  252. package/src/og/control/ZoomControl.js +0 -115
  253. package/src/og/control/drawing/DrawingControl.js +0 -51
  254. package/src/og/control/heightRuler/HeightRuler.js +0 -12
  255. package/src/og/control/index.js +0 -56
  256. package/src/og/control/ruler/Ruler.js +0 -39
  257. package/src/og/ellipsoid/index.js +0 -4
  258. package/src/og/entity/BillboardHandler.js +0 -883
  259. package/src/og/entity/Geometry.js +0 -320
  260. package/src/og/entity/PointCloudHandler.js +0 -122
  261. package/src/og/entity/index.js +0 -9
  262. package/src/og/index.js +0 -112
  263. package/src/og/input/KeyboardHandler.js +0 -195
  264. package/src/og/input/TouchHandler.js +0 -59
  265. package/src/og/layer/GeoTexture2d.js +0 -50
  266. package/src/og/layer/index.js +0 -11
  267. package/src/og/math/index.js +0 -23
  268. package/src/og/quadTree/EntityCollectionNode.js +0 -391
  269. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +0 -27
  270. package/src/og/quadTree/index.js +0 -14
  271. package/src/og/res/images.js +0 -8
  272. package/src/og/scene/index.js +0 -5
  273. package/src/og/terrain/EmptyTerrain.js +0 -174
  274. package/src/og/terrain/index.js +0 -6
  275. package/src/og/ui/Button.js +0 -107
  276. package/src/og/ui/ButtonGroup.js +0 -57
  277. package/src/og/ui/Dialog.js +0 -239
  278. package/src/og/ui/Slider.js +0 -170
  279. package/src/og/ui/ToggleButton.js +0 -51
  280. package/src/og/ui/UIhelpers.js +0 -155
  281. package/src/og/utils/BaseWorker.js +0 -46
  282. package/src/og/utils/FontAtlas.js +0 -218
  283. package/src/og/utils/Loader.js +0 -188
  284. package/src/og/utils/TextureAtlas.js +0 -291
  285. package/src/og/utils/functionComposition.js +0 -13
  286. package/src/og/utils/units.js +0 -78
  287. package/src/og/webgl/Framebuffer.js +0 -311
  288. package/src/og/webgl/Handler.js +0 -1170
  289. package/src/og/webgl/Multisample.js +0 -275
  290. package/src/og/webgl/Program.js +0 -407
  291. package/src/og/webgl/callbacks.js +0 -98
  292. package/src/og/webgl/index.js +0 -13
  293. package/src/og.jsdoc +0 -3
  294. package/types/Clock.d.ts +0 -99
  295. package/types/Deferred.d.ts +0 -6
  296. package/types/Events.d.ts +0 -78
  297. package/types/Extent.d.ts +0 -166
  298. package/types/Globe.d.ts +0 -108
  299. package/types/ImageCanvas.d.ts +0 -128
  300. package/types/Lock.d.ts +0 -12
  301. package/types/LonLat.d.ts +0 -127
  302. package/types/Object3d.d.ts +0 -35
  303. package/types/Popup.d.ts +0 -29
  304. package/types/QueueArray.d.ts +0 -19
  305. package/types/Rectangle.d.ts +0 -80
  306. package/types/Stack.d.ts +0 -19
  307. package/types/arial.d.ts +0 -49
  308. package/types/astro/astro.d.ts +0 -38
  309. package/types/astro/earth.d.ts +0 -7
  310. package/types/astro/jd.d.ts +0 -254
  311. package/types/bv/Box.d.ts +0 -30
  312. package/types/bv/Sphere.d.ts +0 -38
  313. package/types/bv/index.d.ts +0 -3
  314. package/types/camera/Camera.d.ts +0 -314
  315. package/types/camera/Frustum.d.ts +0 -133
  316. package/types/camera/PlanetCamera.d.ts +0 -219
  317. package/types/camera/index.d.ts +0 -3
  318. package/types/cons.d.ts +0 -40
  319. package/types/control/Atmosphere.d.ts +0 -15
  320. package/types/control/CompassButton.d.ts +0 -16
  321. package/types/control/Control.d.ts +0 -104
  322. package/types/control/DebugInfo.d.ts +0 -19
  323. package/types/control/DrawingSwitcher.d.ts +0 -13
  324. package/types/control/EarthCoordinates.d.ts +0 -44
  325. package/types/control/EarthNavigation.d.ts +0 -43
  326. package/types/control/GeoImageDragControl.d.ts +0 -14
  327. package/types/control/KeyboardNavigation.d.ts +0 -24
  328. package/types/control/LayerAnimation.d.ts +0 -73
  329. package/types/control/LayerSwitcher.d.ts +0 -64
  330. package/types/control/Lighting.d.ts +0 -41
  331. package/types/control/MouseNavigation.d.ts +0 -49
  332. package/types/control/MouseWheelZoomControl.d.ts +0 -46
  333. package/types/control/ScaleControl.d.ts +0 -23
  334. package/types/control/ShowFps.d.ts +0 -11
  335. package/types/control/SimpleNavigation.d.ts +0 -26
  336. package/types/control/SimpleSkyBackground.d.ts +0 -15
  337. package/types/control/Sun.d.ts +0 -53
  338. package/types/control/ToggleWireframe.d.ts +0 -12
  339. package/types/control/TouchNavigation.d.ts +0 -54
  340. package/types/control/ZoomControl.d.ts +0 -26
  341. package/types/control/drawing/DrawingControl.d.ts +0 -14
  342. package/types/control/drawing/LineStringDrawingScene.d.ts +0 -5
  343. package/types/control/drawing/PolygonDrawingScene.d.ts +0 -99
  344. package/types/control/heightRuler/HeightRuler.d.ts +0 -6
  345. package/types/control/heightRuler/HeightRulerScene.d.ts +0 -23
  346. package/types/control/index.d.ts +0 -27
  347. package/types/control/ruler/Ruler.d.ts +0 -13
  348. package/types/control/ruler/RulerScene.d.ts +0 -51
  349. package/types/control/selection/Selection.d.ts +0 -49
  350. package/types/control/selection/SelectionScene.d.ts +0 -32
  351. package/types/control/timeline/TimelineControl.d.ts +0 -10
  352. package/types/control/timeline/TimelineModel.d.ts +0 -33
  353. package/types/control/timeline/TimelineView.d.ts +0 -57
  354. package/types/control/timeline/timelineUtils.d.ts +0 -9
  355. package/types/ellipsoid/Ellipsoid.d.ts +0 -170
  356. package/types/ellipsoid/index.d.ts +0 -3
  357. package/types/ellipsoid/wgs84.d.ts +0 -6
  358. package/types/entity/BaseBillboard.d.ts +0 -215
  359. package/types/entity/Billboard.d.ts +0 -94
  360. package/types/entity/BillboardHandler.d.ts +0 -75
  361. package/types/entity/Entity.d.ts +0 -340
  362. package/types/entity/EntityCollection.d.ts +0 -303
  363. package/types/entity/GeoObject.d.ts +0 -117
  364. package/types/entity/GeoObjectHandler.d.ts +0 -41
  365. package/types/entity/Geometry.d.ts +0 -79
  366. package/types/entity/GeometryHandler.d.ts +0 -76
  367. package/types/entity/Label.d.ts +0 -190
  368. package/types/entity/LabelHandler.d.ts +0 -31
  369. package/types/entity/LabelWorker.d.ts +0 -9
  370. package/types/entity/PointCloud.d.ts +0 -174
  371. package/types/entity/PointCloudHandler.d.ts +0 -38
  372. package/types/entity/Polyline.d.ts +0 -307
  373. package/types/entity/PolylineHandler.d.ts +0 -18
  374. package/types/entity/Ray.d.ts +0 -122
  375. package/types/entity/RayHandler.d.ts +0 -63
  376. package/types/entity/Strip.d.ts +0 -119
  377. package/types/entity/StripHandler.d.ts +0 -38
  378. package/types/entity/index.d.ts +0 -8
  379. package/types/index.d.ts +0 -53
  380. package/types/input/KeyboardHandler.d.ts +0 -17
  381. package/types/input/MouseHandler.d.ts +0 -5
  382. package/types/input/TouchHandler.d.ts +0 -5
  383. package/types/input/input.d.ts +0 -42
  384. package/types/layer/BaseGeoImage.d.ts +0 -116
  385. package/types/layer/CanvasTiles.d.ts +0 -73
  386. package/types/layer/GeoImage.d.ts +0 -51
  387. package/types/layer/GeoTexture2d.d.ts +0 -7
  388. package/types/layer/GeoVideo.d.ts +0 -47
  389. package/types/layer/KML.d.ts +0 -93
  390. package/types/layer/Layer.d.ts +0 -320
  391. package/types/layer/Material.d.ts +0 -45
  392. package/types/layer/Vector.d.ts +0 -211
  393. package/types/layer/WMS.d.ts +0 -66
  394. package/types/layer/XYZ.d.ts +0 -122
  395. package/types/layer/index.d.ts +0 -10
  396. package/types/light/LightSource.d.ts +0 -178
  397. package/types/math/Line2.d.ts +0 -11
  398. package/types/math/Line3.d.ts +0 -10
  399. package/types/math/Mat3.d.ts +0 -65
  400. package/types/math/Mat4.d.ts +0 -176
  401. package/types/math/Plane.d.ts +0 -18
  402. package/types/math/Quat.d.ts +0 -379
  403. package/types/math/Ray.d.ts +0 -82
  404. package/types/math/Vec2.d.ts +0 -309
  405. package/types/math/Vec3.d.ts +0 -472
  406. package/types/math/Vec4.d.ts +0 -161
  407. package/types/math/coder.d.ts +0 -43
  408. package/types/math/index.d.ts +0 -11
  409. package/types/math.d.ts +0 -268
  410. package/types/mercator.d.ts +0 -92
  411. package/types/proj/EPSG3857.d.ts +0 -6
  412. package/types/proj/EPSG4326.d.ts +0 -6
  413. package/types/proj/Proj.d.ts +0 -42
  414. package/types/quadTree/EPSG4326QuadTreeStrategy.d.ts +0 -3
  415. package/types/quadTree/EarthQuadTreeStrategy.d.ts +0 -3
  416. package/types/quadTree/EntityCollectionNode.d.ts +0 -41
  417. package/types/quadTree/MarsQuadTreeStrategy.d.ts +0 -3
  418. package/types/quadTree/Node.d.ts +0 -58
  419. package/types/quadTree/QuadTreeStrategy.d.ts +0 -21
  420. package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +0 -3
  421. package/types/quadTree/index.d.ts +0 -12
  422. package/types/quadTree/quadTree.d.ts +0 -40
  423. package/types/renderer/Renderer.d.ts +0 -291
  424. package/types/renderer/RendererEvents.d.ts +0 -241
  425. package/types/res/images.d.ts +0 -2
  426. package/types/scene/Axes.d.ts +0 -10
  427. package/types/scene/BaseNode.d.ts +0 -60
  428. package/types/scene/Planet.d.ts +0 -594
  429. package/types/scene/RenderNode.d.ts +0 -152
  430. package/types/scene/SkyBox.d.ts +0 -9
  431. package/types/scene/index.d.ts +0 -4
  432. package/types/segment/Segment.d.ts +0 -273
  433. package/types/segment/SegmentLonLat.d.ts +0 -22
  434. package/types/segment/SegmentLonLatWgs84.d.ts +0 -4
  435. package/types/segment/Slice.d.ts +0 -10
  436. package/types/segment/segmentHelper.d.ts +0 -13
  437. package/types/shaders/atmos.d.ts +0 -4
  438. package/types/shaders/billboard.d.ts +0 -3
  439. package/types/shaders/depth.d.ts +0 -2
  440. package/types/shaders/drawnode.d.ts +0 -8
  441. package/types/shaders/geoObject.d.ts +0 -3
  442. package/types/shaders/label.d.ts +0 -4
  443. package/types/shaders/pickingMask.d.ts +0 -2
  444. package/types/shaders/pointCloud.d.ts +0 -2
  445. package/types/shaders/polyline.d.ts +0 -3
  446. package/types/shaders/ray.d.ts +0 -2
  447. package/types/shaders/screenFrame.d.ts +0 -2
  448. package/types/shaders/skybox.d.ts +0 -2
  449. package/types/shaders/toneMapping.d.ts +0 -2
  450. package/types/shaders/utils.d.ts +0 -1
  451. package/types/terrain/BilTerrain.d.ts +0 -14
  452. package/types/terrain/EmptyTerrain.d.ts +0 -87
  453. package/types/terrain/Geoid.d.ts +0 -17
  454. package/types/terrain/GlobusTerrain.d.ts +0 -122
  455. package/types/terrain/MapboxTerrain.d.ts +0 -14
  456. package/types/terrain/index.d.ts +0 -5
  457. package/types/ui/Button.d.ts +0 -21
  458. package/types/ui/ButtonGroup.d.ts +0 -12
  459. package/types/ui/Dialog.d.ts +0 -41
  460. package/types/ui/Slider.d.ts +0 -33
  461. package/types/ui/ToggleButton.d.ts +0 -10
  462. package/types/ui/UIhelpers.d.ts +0 -13
  463. package/types/ui/View.d.ts +0 -33
  464. package/types/ui/icons.d.ts +0 -1
  465. package/types/utils/BaseWorker.d.ts +0 -14
  466. package/types/utils/FontAtlas.d.ts +0 -16
  467. package/types/utils/GeoImageCreator.d.ts +0 -30
  468. package/types/utils/ImagesCacheManager.d.ts +0 -10
  469. package/types/utils/Loader.d.ts +0 -31
  470. package/types/utils/NormalMapCreator.d.ts +0 -39
  471. package/types/utils/PlainSegmentWorker.d.ts +0 -8
  472. package/types/utils/TerrainWorker.d.ts +0 -7
  473. package/types/utils/TextureAtlas.d.ts +0 -113
  474. package/types/utils/VectorTileCreator.d.ts +0 -14
  475. package/types/utils/colorTable.d.ts +0 -143
  476. package/types/utils/earcut.d.ts +0 -6
  477. package/types/utils/functionComposition.d.ts +0 -5
  478. package/types/utils/objParser.d.ts +0 -8
  479. package/types/utils/shared.d.ts +0 -241
  480. package/types/utils/units.d.ts +0 -20
  481. package/types/webgl/Framebuffer.d.ts +0 -134
  482. package/types/webgl/Handler.d.ts +0 -403
  483. package/types/webgl/Multisample.d.ts +0 -91
  484. package/types/webgl/Program.d.ts +0 -163
  485. package/types/webgl/ProgramController.d.ts +0 -89
  486. package/types/webgl/callbacks.d.ts +0 -1
  487. package/types/webgl/index.d.ts +0 -6
  488. package/types/webgl/types.d.ts +0 -2
  489. /package/{src/og → dist/@openglobus/res/fonts}/arial.js +0 -0
  490. /package/src/{og/ui/icons.js → ui/icons.ts} +0 -0
@@ -1,48 +1,52 @@
1
- "use strict";
1
+ import {BaseGeoImage, IBaseGeoImageParams} from "./BaseGeoImage";
2
+ import {Material} from "./Material";
2
3
 
3
- import { BaseGeoImage } from "./BaseGeoImage.js";
4
+ interface IGeoVideoParams extends IBaseGeoImageParams {
5
+ videoElement?: HTMLVideoElement;
6
+ src?: string;
7
+ }
4
8
 
5
9
  /**
6
- * Used to load and display a video stream by specific corners coordinates on the globe, implements og.layer.BaseGeoImage interface.
10
+ * Used to load and display a video stream by specific corners coordinates on the globe.
7
11
  * @class
8
12
  * @extends {BaseGeoImage}
9
13
  */
10
14
  class GeoVideo extends BaseGeoImage {
11
- constructor(name, options) {
15
+
16
+ /**
17
+ * HTML5 video element object.
18
+ * @protected
19
+ * @type {HTMLVideoElement}
20
+ */
21
+ protected _video: HTMLVideoElement | null;
22
+
23
+ /**
24
+ * Video source url path.
25
+ * @protected
26
+ * @type {string}
27
+ */
28
+ protected _src: string | null;
29
+
30
+ constructor(name: string | null, options: IGeoVideoParams = {}) {
12
31
  super(name, options);
13
32
 
14
- /**
15
- * @protected
16
- * @const
17
- * @type {Boolean}
18
- */
19
33
  this._animate = true;
20
34
 
21
- /**
22
- * HTML5 video element object.
23
- * @private
24
- * @type {Object}
25
- */
26
35
  this._video = options.videoElement || null;
27
36
 
28
- /**
29
- * VIdeo source url path.
30
- * @private
31
- * @type {String}
32
- */
33
37
  this._src = options.src || null;
34
38
  }
35
39
 
36
- get instanceName() {
40
+ public override get instanceName(): string {
37
41
  return "GeoVideo";
38
42
  }
39
43
 
40
44
  /**
41
45
  * Sets video source url path.
42
46
  * @public
43
- * @param {String} srs - Video url path.
47
+ * @param {string} src - Video url path.
44
48
  */
45
- setSrc(src) {
49
+ public setSrc(src: string) {
46
50
  this._planet && this._planet._geoImageCreator.remove(this);
47
51
  this._src = src;
48
52
  this._sourceReady = false;
@@ -51,9 +55,9 @@ class GeoVideo extends BaseGeoImage {
51
55
  /**
52
56
  * Sets HTML5 video object.
53
57
  * @public
54
- * @param {Object} video - HTML5 video element object.
58
+ * @param {HTMLVideoElement} video - HTML5 video element object.
55
59
  */
56
- setVideoElement(video) {
60
+ public setVideoElement(video: HTMLVideoElement) {
57
61
  this._planet && this._planet._geoImageCreator.remove(this);
58
62
  this._video = video;
59
63
  this._src = video.src;
@@ -65,17 +69,17 @@ class GeoVideo extends BaseGeoImage {
65
69
  * @public
66
70
  * @param {boolean} visibility - Layer visibility.
67
71
  */
68
- setVisibility(visibility) {
72
+ public override setVisibility(visibility: boolean) {
69
73
  if (visibility != this._visibility) {
70
74
  super.setVisibility(visibility);
71
-
72
- // remove from creator
73
- if (visibility) {
74
- this._sourceReady && this._planet._geoImageCreator.add(this);
75
- this._video && this._video.play();
76
- } else {
77
- this._sourceReady && this._planet._geoImageCreator.remove(this);
78
- this._video && this._video.pause();
75
+ if (this._planet) {
76
+ if (visibility) {
77
+ this._sourceReady && this._planet._geoImageCreator.add(this);
78
+ this._video && this._video.play();
79
+ } else {
80
+ this._sourceReady && this._planet._geoImageCreator.remove(this);
81
+ this._video && this._video.pause();
82
+ }
79
83
  }
80
84
  }
81
85
  }
@@ -85,13 +89,13 @@ class GeoVideo extends BaseGeoImage {
85
89
  * @virtual
86
90
  * @protected
87
91
  */
88
- _createSourceTexture() {
89
- let gl = this._planet.renderer.handler.gl;
92
+ protected override _createSourceTexture() {
93
+ let gl = this._planet!.renderer!.handler.gl!;
90
94
  if (this._sourceCreated) {
91
- gl.bindTexture(gl.TEXTURE_2D, this._sourceTexture);
92
- gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._video);
95
+ gl.bindTexture(gl.TEXTURE_2D, this._sourceTexture!);
96
+ gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, this._video!);
93
97
  } else {
94
- this._sourceTexture = this._planet.renderer.handler.createTexture_n_webgl1(this._video);
98
+ this._sourceTexture = this._planet!.renderer!.handler.createTexture_n_webgl1(this._video!);
95
99
  this._sourceCreated = true;
96
100
  }
97
101
  }
@@ -99,22 +103,19 @@ class GeoVideo extends BaseGeoImage {
99
103
  /**
100
104
  * @private
101
105
  */
102
- _onCanPlay(video) {
106
+ protected _onCanPlay(video: HTMLVideoElement) {
103
107
  this._frameWidth = video.videoWidth;
104
108
  this._frameHeight = video.videoHeight;
105
109
  video.width = video.videoWidth;
106
110
  video.height = video.videoHeight;
107
111
  video.play();
108
112
  this._sourceReady = true;
109
- this._planet._geoImageCreator.add(this);
113
+ this._planet!._geoImageCreator.add(this);
110
114
  }
111
115
 
112
- /**
113
- * @private
114
- */
115
- _onError(video) {
116
+ protected _onError(video: HTMLVideoElement) {
116
117
  let err = "unknown error";
117
- switch (video.error.code) {
118
+ switch (video.error!.code) {
118
119
  case 1:
119
120
  err = "video loading aborted";
120
121
  break;
@@ -128,16 +129,15 @@ class GeoVideo extends BaseGeoImage {
128
129
  err = "video not supported";
129
130
  break;
130
131
  }
131
- console.log("Error: " + err + " (errorcode=" + video.error.code + ")");
132
+ console.warn(`Error: ${err} error-code=${video.error!.code})`);
132
133
  }
133
134
 
134
135
  /**
135
136
  * Loads planet segment material. In this case - GeoImage source video.
136
- * @virtual
137
137
  * @public
138
138
  * @param {Material} material - GeoImage planet material.
139
139
  */
140
- loadMaterial(material) {
140
+ public override loadMaterial(material: Material) {
141
141
  material.isLoading = true;
142
142
  this._creationProceeding = true;
143
143
  if (!this._sourceReady && this._src) {
@@ -146,7 +146,7 @@ class GeoVideo extends BaseGeoImage {
146
146
  this._onCanPlay(this._video);
147
147
  } else if (this._video.src) {
148
148
  let that = this;
149
- this._video.addEventListener("canplay", function (e) {
149
+ this._video.addEventListener("canplay", function (e: Event) {
150
150
  that._onCanPlay(this);
151
151
  });
152
152
  }
@@ -164,11 +164,11 @@ class GeoVideo extends BaseGeoImage {
164
164
  this._video.autoplay = true;
165
165
  this._video.loop = true;
166
166
  this._video.src = this._src;
167
- this._video.muted = "muted";
167
+ this._video.muted = true;
168
168
  this._video.setAttribute("playsinline", "true");
169
169
  this._video.setAttribute("webkit-playsinline", "true");
170
170
  } else {
171
- this._planet._geoImageCreator.add(this);
171
+ this._planet!._geoImageCreator.add(this);
172
172
  }
173
173
  }
174
174
 
@@ -176,7 +176,7 @@ class GeoVideo extends BaseGeoImage {
176
176
  * @virtual
177
177
  * @param {Material} material - GeoImage material.
178
178
  */
179
- abortMaterialLoading(material) {
179
+ public override abortMaterialLoading(material: Material) {
180
180
  this._video && (this._video.src = "");
181
181
  this._creationProceeding = false;
182
182
  material.isLoading = false;
@@ -184,4 +184,4 @@ class GeoVideo extends BaseGeoImage {
184
184
  }
185
185
  }
186
186
 
187
- export { GeoVideo };
187
+ export {GeoVideo};
@@ -1,44 +1,43 @@
1
- "use strict";
2
-
3
- import { Billboard } from "../entity/Billboard.js";
4
- import { Entity } from "../entity/Entity.js";
5
- import { Extent } from "../Extent.js";
6
- import { LonLat } from "../LonLat.js";
7
- import { Vector } from "./Vector.js";
1
+ import {Billboard, IBillboardParams} from "../entity/Billboard";
2
+ import {Entity} from "../entity/Entity";
3
+ import {Extent} from "../Extent";
4
+ import {LonLat} from "../LonLat";
5
+ import {Vector, IVectorParams} from "./Vector";
6
+ import {NumberArray3} from "../math/Vec3";
7
+
8
+ interface IKMLParams extends IVectorParams {
9
+ color?: string;
10
+ billboard?: IBillboardParams;
11
+ }
8
12
 
9
13
  /**
10
14
  * Layer to render KMLs files
11
15
  * @class
12
16
  * @extends {Vector}
17
+ * @param {string} name
18
+ * @param {*} [options]
13
19
  */
14
20
  export class KML extends Vector {
15
- /**
16
- *
17
- * @param {string} name
18
- * @param {*} [options]
19
- */
20
- constructor(name, options = {}) {
21
+
22
+ protected _color: string;
23
+ protected _billboard: IBillboardParams;
24
+
25
+ constructor(name: string, options: IKMLParams = {}) {
21
26
  super(name, options);
22
- this._extent = null;
23
27
  this._billboard = options.billboard || {
24
28
  src: "https://openglobus.org/examples/billboards/carrot.png"
25
29
  };
26
- /**
27
- * @type {string}
28
- */
30
+
29
31
  this._color = options.color || "#6689db";
30
32
  }
31
33
 
32
- get instanceName() {
34
+ public override get instanceName() {
33
35
  return "KML";
34
36
  }
35
37
 
36
- /**
37
- * @public
38
- */
39
- _extractCoordonatesFromKml(xmlDoc) {
38
+ protected _extractCoordonatesFromKml(xmlDoc: XMLDocument) {
40
39
  const raw = Array.from(xmlDoc.getElementsByTagName("coordinates"));
41
- const rawText = raw.map(item => item.textContent.trim());
40
+ const rawText = raw.map(item => item.textContent!.trim());
42
41
  const coordinates = rawText.map(item =>
43
42
  item
44
43
  .replace(/\n/g, " ")
@@ -50,11 +49,8 @@ export class KML extends Vector {
50
49
  return coordinates;
51
50
  }
52
51
 
53
- /**
54
- * @private
55
- */
56
- _AGBRtoRGBA(agbr) {
57
- if (!agbr || agbr.length != 8) return
52
+ protected _AGBRtoRGBA(agbr: string): string | undefined {
53
+ if (!agbr || agbr.length != 8) return;
58
54
 
59
55
  const a = parseInt(agbr.slice(0, 2), 16) / 255;
60
56
  const b = parseInt(agbr.slice(2, 4), 16);
@@ -65,10 +61,10 @@ export class KML extends Vector {
65
61
  }
66
62
 
67
63
  /**
68
- * @private
64
+ * @protected
69
65
  returns array of longitude, latitude, altitude (altitude optional)
70
66
  */
71
- _parseKMLcoordinates(coords) {
67
+ protected _parseKMLcoordinates(coords: Element): number[][] {
72
68
  const coordinates = coords.innerHTML.trim()
73
69
  .replace(/\n/g, ' ')
74
70
  .replace(/\t/g, ' ')
@@ -79,20 +75,17 @@ export class KML extends Vector {
79
75
  return coordinates;
80
76
  }
81
77
 
82
- /**
83
- * @private
84
- */
85
- _kmlPlacemarkToEntity(placemark, extent) {
78
+ protected _kmlPlacemarkToEntity(placemark: Element | undefined | null, extent: Extent): Entity | undefined {
86
79
  if (!placemark) return;
87
80
 
88
- const nameTags = Array.from(placemark.getElementsByTagName("name"))
89
- const name = nameTags && nameTags.length > 0 ? nameTags[0].innerHTML.trim() : '';
81
+ const nameTags: Element[] = Array.from(placemark.getElementsByTagName("name"))
82
+ const name: string = nameTags && nameTags.length > 0 ? nameTags[0].innerHTML.trim() : '';
90
83
 
91
- const { iconHeading, iconURL, iconColor, lineWidth, lineColor } = this._extractStyle(placemark);
84
+ const {iconHeading, iconURL, iconColor, lineWidth, lineColor} = this._extractStyle(placemark);
92
85
 
93
86
  // TODO handle MultiGeometry
94
87
 
95
- const lonLats = [];
88
+ const lonLats: LonLat[] = [];
96
89
  for (const coord of placemark.getElementsByTagName("coordinates")) {
97
90
  const coordinates = this._parseKMLcoordinates(coord) || [[0, 0, 0]]
98
91
 
@@ -138,7 +131,7 @@ export class KML extends Vector {
138
131
  }
139
132
  }
140
133
 
141
- _extractStyle(placemark) {
134
+ protected _extractStyle(placemark: Element): any {
142
135
  let iconColor;
143
136
  let iconHeading;
144
137
  let iconURL;
@@ -187,10 +180,10 @@ export class KML extends Vector {
187
180
  if (!lineColor) lineColor = "#FFFFFF"
188
181
  if (!lineWidth) lineWidth = 1
189
182
 
190
- return { iconHeading, iconURL, iconColor, lineWidth, lineColor };
183
+ return {iconHeading, iconURL, iconColor, lineWidth, lineColor};
191
184
  }
192
185
 
193
- _parseKML(xml, extent, entities = undefined) {
186
+ protected _parseKML(xml: XMLDocument, extent: Extent, entities?: Entity[]): Entity[] {
194
187
  if (!entities)
195
188
  entities = [];
196
189
 
@@ -205,23 +198,23 @@ export class KML extends Vector {
205
198
  return entities;
206
199
  }
207
200
 
208
- _convertKMLintoEntities(xml) {
201
+ protected _convertKMLintoEntities(xml: XMLDocument): any {
209
202
  const extent = new Extent(new LonLat(180.0, 90.0), new LonLat(-180.0, -90.0));
210
203
  const entities = this._parseKML(xml, extent);
211
204
 
212
- return { entities, extent }
205
+ return {entities, extent}
213
206
  }
214
207
 
215
208
  /**
216
209
  * Creates billboards or polylines from array of lonlat.
217
- * @public
210
+ * @protected
218
211
  * @param {Array} coordonates
219
212
  * @param {string} color
220
- * @returns {Array<Entity>}
213
+ * @returns {any}
221
214
  */
222
- _convertCoordonatesIntoEntities(coordinates, color, billboard) {
215
+ protected _convertCoordonatesIntoEntities(coordinates: number[][][][], color: string, billboard?: IBillboardParams): any {
223
216
  const extent = new Extent(new LonLat(180.0, 90.0), new LonLat(-180.0, -90.0));
224
- const addToExtent = (c) => {
217
+ const addToExtent = (c: number[]) => {
225
218
  const lon = c[0],
226
219
  lat = c[1];
227
220
  if (lon < extent.southWest.lon) extent.southWest.lon = lon;
@@ -229,45 +222,44 @@ export class KML extends Vector {
229
222
  if (lon > extent.northEast.lon) extent.northEast.lon = lon;
230
223
  if (lat > extent.northEast.lat) extent.northEast.lat = lat;
231
224
  };
232
- const _pathes = [];
233
- coordinates.forEach((kmlFile) => kmlFile.forEach((p) => _pathes.push(p)));
225
+ const _pathes: number[][][] = [];
226
+
227
+ coordinates.forEach((kmlFile: number[][][]) => kmlFile.forEach((p: number[][]) => _pathes.push(p)));
228
+
234
229
  const entities = _pathes.map((path) => {
235
230
  if (path.length === 1) {
236
- const lonlat = path[0];
237
- const _entity = new Entity({ lonlat, billboard });
231
+ const lonlat = path[0] as NumberArray3;
232
+ const _entity = new Entity({lonlat, billboard});
238
233
  addToExtent(lonlat);
239
234
  return _entity;
240
235
  } else if (path.length > 1) {
241
- const pathLonLat = path.map((item) => {
236
+ const pathLonLat = path.map((item: number[]) => {
242
237
  addToExtent(item);
243
238
  return new LonLat(item[0], item[1], item[2]);
244
239
  });
245
240
  const _entity = new Entity({
246
- polyline: { pathLonLat: [pathLonLat], thickness: 3, color, isClosed: false }
241
+ polyline: {pathLonLat: [pathLonLat], thickness: 3, color, isClosed: false}
247
242
  });
248
243
  return _entity;
249
244
  }
250
245
  });
251
- return { entities, extent };
246
+ return {entities, extent};
252
247
  }
253
248
 
254
249
  /**
255
- * @public
250
+ * @protected
256
251
  * @returns {Document}
257
252
  */
258
- _getXmlContent(file) {
253
+ protected _getXmlContent(file: Blob): Promise<XMLDocument> {
259
254
  return new Promise((resolve) => {
260
255
  const fileReader = new FileReader();
261
256
  fileReader.onload = async (i) =>
262
- resolve(new DOMParser().parseFromString(i.target.result, "text/xml"));
257
+ resolve(new DOMParser().parseFromString(i.target!.result as string, "text/xml"));
263
258
  fileReader.readAsText(file);
264
259
  });
265
260
  }
266
261
 
267
- /**
268
- * @public
269
- */
270
- _expandExtents(extent1, extent2) {
262
+ protected _expandExtents(extent1: Extent | null | undefined, extent2: Extent): Extent {
271
263
  if (!extent1) return extent2;
272
264
  if (extent2.southWest.lon < extent1.southWest.lon)
273
265
  extent1.southWest.lon = extent2.southWest.lon;
@@ -287,41 +279,38 @@ export class KML extends Vector {
287
279
  * @param {Billboard} [billboard]
288
280
  * @returns {Promise<{entities: Entity[], extent: Extent}>}
289
281
  */
290
- async addKmlFromFiles(kmls, color = null, billboard = null) {
282
+ public async addKmlFromFiles(kmls: Blob[], color?: string, billboard?: IBillboardParams) {
291
283
  if (!Array.isArray(kmls)) return null
292
284
  const kmlObjs = await Promise.all(kmls.map(this._getXmlContent));
293
285
  const coordonates = kmlObjs.map(this._extractCoordonatesFromKml);
294
- const { entities, extent } = this._convertCoordonatesIntoEntities(
286
+ const {entities, extent} = this._convertCoordonatesIntoEntities(
295
287
  coordonates,
296
288
  color || this._color,
297
289
  billboard || this._billboard
298
290
  );
299
291
  this._extent = this._expandExtents(this._extent, extent);
300
292
  entities.forEach(this.add.bind(this));
301
- return { entities, extent };
293
+ return {entities, extent};
302
294
  }
303
295
 
304
296
  /**
305
297
  * @param {string} color
306
298
  * @public
307
299
  */
308
- setColor(color) {
300
+ public setColor(color: string) {
309
301
  this._color = color;
310
302
  this._billboard.color = color;
311
303
  }
312
304
 
313
- /**
314
- * @public
315
- */
316
- _getKmlFromUrl(url) {
317
- return new Promise((resolve, reject) => {
305
+ protected _getKmlFromUrl(url: string): Promise<Document> {
306
+ return new Promise<Document>((resolve, reject) => {
318
307
  const request = new XMLHttpRequest();
319
308
  request.open("GET", url, true);
320
309
  request.responseType = "document";
321
310
  request.overrideMimeType("text/xml");
322
311
  request.onload = () => {
323
312
  if (request.readyState === request.DONE && request.status === 200) {
324
- resolve(request.responseXML);
313
+ resolve(request.responseXML!);
325
314
  } else {
326
315
  reject(new Error("no valid kml file"));
327
316
  }
@@ -337,7 +326,7 @@ export class KML extends Vector {
337
326
  * @param {Billboard} [billboard]
338
327
  * @returns {Promise<{entities: Entity[], extent: Extent}>}
339
328
  */
340
- async addKmlFromUrl(url, color = null, billboard = null) {
329
+ public async addKmlFromUrl(url: string, color?: string, billboard?: Billboard | IBillboardParams): Promise<any> {
341
330
  const kml = await this._getKmlFromUrl(url);
342
331
  /*
343
332
  const coordonates = this._extractCoordonatesFromKml(kml);
@@ -347,12 +336,12 @@ export class KML extends Vector {
347
336
  billboard || this._billboard
348
337
  );
349
338
  */
350
- const { entities, extent } = this._convertKMLintoEntities(kml);
339
+ const {entities, extent} = this._convertKMLintoEntities(kml);
351
340
 
352
341
  this._extent = this._expandExtents(this._extent, extent);
353
342
 
354
343
  entities.forEach(this.add.bind(this));
355
344
 
356
- return { entities, extent };
345
+ return {entities, extent};
357
346
  }
358
347
  }