@openglobus/og 0.13.5 → 0.13.8

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 (78) hide show
  1. package/css/og.css +66 -25
  2. package/dist/@openglobus/og.css +1 -1
  3. package/dist/@openglobus/og.esm.js +2 -2
  4. package/dist/@openglobus/og.esm.js.map +1 -1
  5. package/dist/@openglobus/og.umd.js +2 -2
  6. package/dist/@openglobus/og.umd.js.map +1 -1
  7. package/package.json +1 -1
  8. package/src/og/Events.js +188 -188
  9. package/src/og/Extent.js +1 -9
  10. package/src/og/Globe.js +1 -0
  11. package/src/og/Object3d.js +384 -0
  12. package/src/og/arial.js +1705 -1703
  13. package/src/og/camera/Camera.js +640 -640
  14. package/src/og/control/DebugInfo.js +15 -4
  15. package/src/og/control/EarthCoordinates.js +151 -160
  16. package/src/og/control/KeyboardNavigation.js +48 -2
  17. package/src/og/control/LayerAnimation.js +115 -0
  18. package/src/og/control/MouseNavigation.js +460 -460
  19. package/src/og/control/Sun.js +170 -170
  20. package/src/og/control/TouchNavigation.js +13 -13
  21. package/src/og/control/ZoomControl.js +1 -3
  22. package/src/og/control/index.js +3 -1
  23. package/src/og/control/ruler/Ruler.js +43 -0
  24. package/src/og/control/ruler/RulerScene.js +370 -0
  25. package/src/og/control/visibleExtent/Segment.js +1 -4
  26. package/src/og/ellipsoid/Ellipsoid.js +20 -1
  27. package/src/og/entity/Entity.js +1 -1
  28. package/src/og/entity/GeoObject.js +1 -1
  29. package/src/og/entity/LabelHandler.js +3 -2
  30. package/src/og/input/input.js +7 -1
  31. package/src/og/layer/CanvasTiles.js +8 -8
  32. package/src/og/layer/KML.js +181 -12
  33. package/src/og/layer/Layer.js +27 -42
  34. package/src/og/layer/Vector.js +80 -14
  35. package/src/og/layer/XYZ.js +8 -2
  36. package/src/og/math/Vec3.js +1 -1
  37. package/src/og/math.js +4 -4
  38. package/src/og/quadTree/Node.js +2 -1
  39. package/src/og/renderer/Renderer.js +1 -2
  40. package/src/og/renderer/RendererEvents.js +17 -3
  41. package/src/og/res/images.js +0 -2
  42. package/src/og/scene/Planet.js +92 -32
  43. package/src/og/segment/Segment.js +1 -8
  44. package/src/og/shaders/label.js +30 -42
  45. package/src/og/terrain/EmptyTerrain.js +164 -146
  46. package/src/og/terrain/Geoid.js +246 -241
  47. package/src/og/terrain/GlobusTerrain.js +23 -24
  48. package/src/og/terrain/MapboxTerrain.js +292 -294
  49. package/src/og/utils/FontAtlas.js +1 -2
  50. package/src/og/utils/Loader.js +160 -112
  51. package/src/og/utils/PlainSegmentWorker.js +38 -26
  52. package/src/og/utils/VectorTileCreator.js +1 -1
  53. package/src/og/utils/units.js +78 -0
  54. package/src/og/webgl/ProgramController.js +143 -143
  55. package/types/Object3d.d.ts +21 -0
  56. package/types/arial.d.ts +1 -0
  57. package/types/control/EarthCoordinates.d.ts +27 -30
  58. package/types/control/KeyboardNavigation.d.ts +3 -0
  59. package/types/control/Sun.d.ts +1 -1
  60. package/types/control/index.d.ts +2 -1
  61. package/types/control/ruler/Ruler.d.ts +13 -0
  62. package/types/control/ruler/RulerScene.d.ts +48 -0
  63. package/types/ellipsoid/Ellipsoid.d.ts +8 -0
  64. package/types/input/input.d.ts +6 -0
  65. package/types/layer/KML.d.ts +26 -1
  66. package/types/layer/Layer.d.ts +23 -31
  67. package/types/layer/Vector.d.ts +2 -0
  68. package/types/layer/XYZ.d.ts +1 -0
  69. package/types/math.d.ts +1 -1
  70. package/types/renderer/RendererEvents.d.ts +2 -0
  71. package/types/res/images.d.ts +0 -1
  72. package/types/scene/Planet.d.ts +12 -3
  73. package/types/terrain/EmptyTerrain.d.ts +4 -1
  74. package/types/terrain/Geoid.d.ts +1 -10
  75. package/types/terrain/GlobusTerrain.d.ts +0 -2
  76. package/types/terrain/MapboxTerrain.d.ts +1 -1
  77. package/types/utils/Loader.d.ts +4 -0
  78. package/types/utils/units.d.ts +20 -0
@@ -1,47 +1,44 @@
1
- export function earthCoordinates(options: any): EarthCoordinates;
2
1
  /**
3
2
  * Control displays mouse or screen center Earth coordinates.
4
3
  * @class
5
- * @extends {Control}
4
+ * @extends {og.control.Control}
6
5
  * @param {Object} [options] - Options:
7
6
  * @param {Boolean} [options.center] - Earth coordiantes by screen center otherwise mouse pointer. False is default.
8
7
  * @param {Boolean} [options.type] - Coordinates shown: 0 - is decimal degrees, 1 - degrees, 2 - mercator geodetic coordinates.
9
8
  */
10
- export class EarthCoordinates extends Control {
9
+ export class EarthCoordinates {
10
+ constructor(options: any);
11
11
  /**
12
12
  * Display type.
13
13
  * @private
14
14
  * @type {Boolean}
15
15
  */
16
- private _displayType;
17
- /**
18
- * Current coordinates type converter.
19
- * @private
20
- * @function
21
- */
22
- private _converter;
23
- /**
24
- * Display dom element.
25
- * @private
26
- * @type {Object}
27
- */
28
- private _display;
29
- _center: any;
30
- _centerDiv: HTMLDivElement;
16
+ private _type;
17
+ _TYPE_FUNC: ((ll: any) => void)[];
18
+ _showFn: any;
31
19
  /**
32
20
  * Current position.
33
21
  * @public
34
- * @type {Vec3}
35
- */
36
- public position: Vec3;
37
- /**
38
- * Sets coordinates capturing type.
39
- * @public
40
- * @param {Boolean} center - True - capture screen center, false - mouse pointer.
22
+ * @type {og.Vec3}
41
23
  */
42
- public setCenter(center: boolean): void;
43
- _showPosition(): void;
44
- _grabCoordinates(): void;
45
- _onMouseMove(): void;
24
+ public _lonLat: og.Vec3;
25
+ _latSideEl: Element;
26
+ _lonSideEl: Element;
27
+ _latValEl: Element;
28
+ _lonValEl: Element;
29
+ _heightEl: Element;
30
+ _altUnitVal: any;
31
+ _heightModeVal: any;
32
+ _altUnit: any;
33
+ _heightMode: any;
34
+ _centerMode: any;
35
+ _SHOW_DECIMAL(ll: any): void;
36
+ _SHOW_DEGREE(ll: any): void;
37
+ _createCenterEl(): HTMLDivElement;
38
+ _updateUnits(): void;
39
+ _refreshCoordinates(): void;
40
+ oninit(): void;
41
+ _el: HTMLDivElement;
42
+ _grabCoordinates(px: any): void;
43
+ _showHeight(): Promise<void>;
46
44
  }
47
- import { Control } from "./Control.js";
@@ -13,8 +13,11 @@ export class KeyboardNavigation extends Control {
13
13
  onCameraStrifeRight(event: any): void;
14
14
  onCameraLookUp(event: any): void;
15
15
  onCameraLookDown(event: any): void;
16
+ onCameraLookLeft(event: any): void;
17
+ onCameraLookRight(event: any): void;
16
18
  onCameraTurnLeft(event: any): void;
17
19
  onCameraTurnRight(event: any): void;
20
+ onCameraRollNorth(event: any): void;
18
21
  onCameraRollLeft(event: any): void;
19
22
  onCameraRollRight(event: any): void;
20
23
  }
@@ -1,4 +1,4 @@
1
- export function sun(options: any): any;
1
+ export function sun(options: any): Sun;
2
2
  /**
3
3
  * Real Sun geocentric position control that place the Sun on the right place by the Earth.
4
4
  * @class
@@ -15,4 +15,5 @@ import { Sun } from "./Sun.js";
15
15
  import { ZoomControl } from "./ZoomControl.js";
16
16
  import { MouseWheelZoomControl } from "./MouseWheelZoomControl.js";
17
17
  import { Lighting } from "./Lighting.js";
18
- export { Control, CompassButton, DebugInfo, EarthNavigation, EarthCoordinates, GeoImageDragControl, KeyboardNavigation, LayerSwitcher, MouseNavigation, ToggleWireframe, TouchNavigation, SimpleNavigation, ShowFps, Sun, ZoomControl, MouseWheelZoomControl, Lighting };
18
+ import { Ruler } from "./ruler/Ruler.js";
19
+ export { Control, CompassButton, DebugInfo, EarthNavigation, EarthCoordinates, GeoImageDragControl, KeyboardNavigation, LayerSwitcher, MouseNavigation, ToggleWireframe, TouchNavigation, SimpleNavigation, ShowFps, Sun, ZoomControl, MouseWheelZoomControl, Lighting, Ruler };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Activate ruler
3
+ * @class
4
+ * @extends {Control}
5
+ * @param {Object} [options] - Control options.
6
+ */
7
+ export class Ruler extends Control {
8
+ constructor(options?: {});
9
+ _rulerScene: RulerScene;
10
+ set ignoreTerrain(arg: any);
11
+ }
12
+ import { Control } from "../Control.js";
13
+ import { RulerScene } from "./RulerScene.js";
@@ -0,0 +1,48 @@
1
+ export class RulerScene extends RenderNode {
2
+ constructor(options?: {});
3
+ _ignoreTerrain: any;
4
+ _planet: any;
5
+ _startLonLat: any;
6
+ _preventClick: boolean;
7
+ _stopDrawing: boolean;
8
+ _pickedCorner: any;
9
+ _startPos: any;
10
+ _startClick: Vec2;
11
+ _heading: number;
12
+ _propsLabel: Entity;
13
+ _trackEntity: Entity;
14
+ _cornerEntity: Entity[];
15
+ _trackLayer: Vector;
16
+ _cornersLayer: Vector;
17
+ set ignoreTerrain(arg: any);
18
+ bindPlanet(planet: any): void;
19
+ init(): void;
20
+ _activate(): void;
21
+ _onLclick_: any;
22
+ _onMouseMove_: any;
23
+ _onLdblclick_: any;
24
+ _onCornerEnter_: any;
25
+ _onCornerLeave_: any;
26
+ _onCornerLdown_: any;
27
+ _onCornerLup_: any;
28
+ _deactivate(): void;
29
+ _onCornerLdown(e: any): void;
30
+ _anchorLonLat: LonLat;
31
+ _onCornerLup(e: any): void;
32
+ _onCornerEnter(e: any): void;
33
+ _onCornerLeave(e: any): void;
34
+ _onLdblclick(): void;
35
+ _onLclick(e: any): void;
36
+ _timeout: any;
37
+ _drawLine(startLonLat: any, endLonLat: any, startPos: any): void;
38
+ _onMouseMove(e: any): void;
39
+ clear(): void;
40
+ getScale(cart: any): number;
41
+ frame(): void;
42
+ get ellipsoid(): any;
43
+ }
44
+ import { RenderNode } from "../../scene/RenderNode.js";
45
+ import { Vec2 } from "../../math/Vec2.js";
46
+ import { Entity } from "../../entity/Entity.js";
47
+ import { Vector } from "../../layer/Vector.js";
48
+ import { LonLat } from "../../LonLat.js";
@@ -67,6 +67,14 @@ export class Ellipsoid {
67
67
  _radii2: Vec3;
68
68
  _invRadii: Vec3;
69
69
  _invRadii2: Vec3;
70
+ /**
71
+ * Returns the distance travelling from ‘this’ point to destination point along a rhumb line.
72
+ *
73
+ * @param {LonLat} start coordinates.
74
+ * @param {LonLat} end coordinates
75
+ * @returns {number} Distance in m between this point and destination point (same units as radius).
76
+ */
77
+ rhumbDistanceTo(startLonLat: any, endLonLat: any): number;
70
78
  /**
71
79
  * Gets ellipsoid equatorial size.
72
80
  * @public
@@ -3,11 +3,14 @@ export namespace input {
3
3
  const KEY_ALT: number;
4
4
  const KEY_SHIFT: number;
5
5
  const KEY_SPACE: number;
6
+ const KEY_PGUP: number;
7
+ const KEY_PGDN: number;
6
8
  const KEY_LEFT: number;
7
9
  const KEY_UP: number;
8
10
  const KEY_RIGHT: number;
9
11
  const KEY_DOWN: number;
10
12
  const KEY_PRINTSCREEN: number;
13
+ const KEY_EQUALS: number;
11
14
  const KEY_A: number;
12
15
  const KEY_C: number;
13
16
  const KEY_D: number;
@@ -17,6 +20,7 @@ export namespace input {
17
20
  const KEY_I: number;
18
21
  const KEY_K: number;
19
22
  const KEY_L: number;
23
+ const KEY_N: number;
20
24
  const KEY_O: number;
21
25
  const KEY_P: number;
22
26
  const KEY_Q: number;
@@ -26,7 +30,9 @@ export namespace input {
26
30
  const KEY_W: number;
27
31
  const KEY_X: number;
28
32
  const KEY_Z: number;
33
+ const KEY_PLUS: number;
29
34
  const KEY_F1: number;
35
+ const KEY_MINUS: number;
30
36
  const KEY_APOSTROPHE: number;
31
37
  const MB_LEFT: number;
32
38
  const MB_RIGHT: number;
@@ -13,6 +13,31 @@ export class KML extends Vector {
13
13
  * @public
14
14
  */
15
15
  public _extractCoordonatesFromKml(xmlDoc: any): any[];
16
+ /**
17
+ * @private
18
+ */
19
+ private _AGBRtoRGBA;
20
+ /**
21
+ * @private
22
+ returns array of longitude, latitude, altitude (altitude optional)
23
+ */
24
+ private _parseKMLcoordinates;
25
+ /**
26
+ * @private
27
+ */
28
+ private _kmlPlacemarkToEntity;
29
+ _extractStyle(placemark: any): {
30
+ iconHeading: number;
31
+ iconURL: any;
32
+ iconColor: string;
33
+ lineWidth: number;
34
+ lineColor: string;
35
+ };
36
+ _parseKML(xml: any, extent: any, entities?: any): any;
37
+ _convertKMLintoEntities(xml: any): {
38
+ entities: any;
39
+ extent: Extent;
40
+ };
16
41
  /**
17
42
  * Creates billboards or polylines from array of lonlat.
18
43
  * @public
@@ -63,6 +88,6 @@ export class KML extends Vector {
63
88
  }>;
64
89
  }
65
90
  import { Vector } from "./Vector.js";
91
+ import { Extent } from "../Extent.js";
66
92
  import { Entity } from "../entity/Entity.js";
67
93
  import { Billboard } from "../entity/Billboard.js";
68
- import { Extent } from "../Extent.js";
@@ -19,29 +19,29 @@ export const FADING_FACTOR: 0.29;
19
19
  * @fires og.Layer#visibilitychange
20
20
  * @fires og.Layer#add
21
21
  * @fires og.Layer#remove
22
- * @fires og.layer.Vector#mousemove
23
- * @fires og.layer.Vector#mouseenter
24
- * @fires og.layer.Vector#mouseleave
25
- * @fires og.layer.Vector#lclick
26
- * @fires og.layer.Vector#rclick
27
- * @fires og.layer.Vector#mclick
28
- * @fires og.layer.Vector#ldblclick
29
- * @fires og.layer.Vector#rdblclick
30
- * @fires og.layer.Vector#mdblclick
31
- * @fires og.layer.Vector#lup
32
- * @fires og.layer.Vector#rup
33
- * @fires og.layer.Vector#mup
34
- * @fires og.layer.Vector#ldown
35
- * @fires og.layer.Vector#rdown
36
- * @fires og.layer.Vector#mdown
37
- * @fires og.layer.Vector#lhold
38
- * @fires og.layer.Vector#rhold
39
- * @fires og.layer.Vector#mhold
40
- * @fires og.layer.Vector#mousewheel
41
- * @fires og.layer.Vector#touchmove
42
- * @fires og.layer.Vector#touchstart
43
- * @fires og.layer.Vector#touchend
44
- * @fires og.layer.Vector#doubletouch
22
+ * @fires og.layer.Layer#mousemove
23
+ * @fires og.layer.Layer#mouseenter
24
+ * @fires og.layer.Layer#mouseleave
25
+ * @fires og.layer.Layer#lclick
26
+ * @fires og.layer.Layer#rclick
27
+ * @fires og.layer.Layer#mclick
28
+ * @fires og.layer.Layer#ldblclick
29
+ * @fires og.layer.Layer#rdblclick
30
+ * @fires og.layer.Layer#mdblclick
31
+ * @fires og.layer.Layer#lup
32
+ * @fires og.layer.Layer#rup
33
+ * @fires og.layer.Layer#mup
34
+ * @fires og.layer.Layer#ldown
35
+ * @fires og.layer.Layer#rdown
36
+ * @fires og.layer.Layer#mdown
37
+ * @fires og.layer.Layer#lhold
38
+ * @fires og.layer.Layer#rhold
39
+ * @fires og.layer.Layer#mhold
40
+ * @fires og.layer.Layer#mousewheel
41
+ * @fires og.layer.Layer#touchmove
42
+ * @fires og.layer.Layer#touchstart
43
+ * @fires og.layer.Layer#touchend
44
+ * @fires og.layer.Layer#doubletouch
45
45
  */
46
46
  export class Layer {
47
47
  static getTMS(x: any, y: any, z: any): {
@@ -52,14 +52,6 @@ export class Layer {
52
52
  static getTileIndex(...arr: any[]): string;
53
53
  static set __layersCounter(arg: any);
54
54
  static get __layersCounter(): any;
55
- static set __requestsCounter(arg: any);
56
- static get __requestsCounter(): any;
57
- /**
58
- * Maximum loading queries at one time.
59
- * @const
60
- * @type {number}
61
- */
62
- static get MAX_REQUESTS(): number;
63
55
  constructor(name: any, options?: {});
64
56
  /**
65
57
  * Layer user name.
@@ -76,6 +76,7 @@ export class Vector extends Layer {
76
76
  private _entities;
77
77
  _stripEntityCollection: EntityCollection;
78
78
  _polylineEntityCollection: EntityCollection;
79
+ _geoObjectEntityCollection: EntityCollection;
79
80
  _geometryHandler: GeometryHandler;
80
81
  _entityCollectionsTree: EntityCollectionNode;
81
82
  _entityCollectionsTreeNorth: EntityCollectionNodeWGS84;
@@ -171,6 +172,7 @@ export class Vector extends Layer {
171
172
  _bindEventsDefault(entityCollection: any): void;
172
173
  _collectStripCollectionPASS(outArr: any): void;
173
174
  _collectPolylineCollectionPASS(outArr: any): void;
175
+ _collectGeoObjectCollectionPASS(outArr: any): void;
174
176
  collectVisibleCollections(outArr: any): void;
175
177
  _secondPASS: any[];
176
178
  _queueDeferredNode(node: any): void;
@@ -69,6 +69,7 @@ export class XYZ extends Layer {
69
69
  * @returns {string} - Url query string.
70
70
  */
71
71
  private _urlRewriteCallback;
72
+ get isIdle(): any;
72
73
  /**
73
74
  * Abort loading tiles.
74
75
  * @public
package/types/math.d.ts CHANGED
@@ -91,7 +91,7 @@ export function mod(m: number, n: number): number;
91
91
  */
92
92
  export function zeroTwoPI(a: number): number;
93
93
  /**
94
- * Returns 0.0 if x is smaller then edge and otherwise 1.0.
94
+ * Returns 0.0 if x is smaller than edge and otherwise 1.0.
95
95
  * @function
96
96
  * @param {number} edge -
97
97
  * @param {number} x - Value to edge.
@@ -134,6 +134,8 @@ export class RendererEvents extends Events {
134
134
  prev_x: number;
135
135
  /** Previous touch Y coordinate. */
136
136
  prev_y: number;
137
+ /** Screen touch position world direction. */
138
+ direction: Vec3;
137
139
  /** JavaScript touching system event message. */
138
140
  sys: any;
139
141
  /** Current touched(picking) object. */