@openglobus/og 0.18.4 → 0.19.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 (64) hide show
  1. package/README.md +19 -68
  2. package/css/og.css +308 -45
  3. package/lib/@openglobus/og.css +1 -1
  4. package/lib/@openglobus/og.esm.js +1 -1
  5. package/lib/@openglobus/og.esm.js.map +1 -1
  6. package/lib/@openglobus/og.umd.js +1 -1
  7. package/lib/@openglobus/og.umd.js.map +1 -1
  8. package/lib/js/Globe.d.ts +2 -0
  9. package/lib/js/Globe.js +3 -1
  10. package/lib/js/camera/PlanetCamera.d.ts +2 -2
  11. package/lib/js/camera/PlanetCamera.js +3 -2
  12. package/lib/js/control/DebugInfo.js +5 -0
  13. package/lib/js/control/EarthCoordinates.js +2 -2
  14. package/lib/js/control/LayerSwitcher.d.ts +18 -3
  15. package/lib/js/control/LayerSwitcher.js +111 -11
  16. package/lib/js/control/MouseNavigation.d.ts +2 -0
  17. package/lib/js/control/MouseNavigation.js +15 -15
  18. package/lib/js/control/elevationProfile/ElevationProfile.d.ts +41 -25
  19. package/lib/js/control/elevationProfile/ElevationProfile.js +106 -75
  20. package/lib/js/control/elevationProfile/ElevationProfileButtonsView.d.ts +14 -0
  21. package/lib/js/control/elevationProfile/ElevationProfileButtonsView.js +61 -0
  22. package/lib/js/control/elevationProfile/ElevationProfileControl.d.ts +33 -0
  23. package/lib/js/control/elevationProfile/ElevationProfileControl.js +153 -0
  24. package/lib/js/control/elevationProfile/ElevationProfileLegend.d.ts +20 -0
  25. package/lib/js/control/elevationProfile/ElevationProfileLegend.js +82 -0
  26. package/lib/js/control/elevationProfile/ElevationProfileScene.d.ts +80 -0
  27. package/lib/js/control/elevationProfile/ElevationProfileScene.js +539 -0
  28. package/lib/js/control/elevationProfile/ElevationProfileView.d.ts +63 -0
  29. package/lib/js/control/elevationProfile/ElevationProfileView.js +504 -0
  30. package/lib/js/control/elevationProfile/PointListDialog.d.ts +12 -0
  31. package/lib/js/control/elevationProfile/PointListDialog.js +57 -0
  32. package/lib/js/control/heightRuler/HeightRulerScene.js +1 -1
  33. package/lib/js/control/index.d.ts +2 -1
  34. package/lib/js/control/index.js +2 -1
  35. package/lib/js/control/ruler/RulerScene.js +3 -3
  36. package/lib/js/control/selection/SelectionScene.js +2 -2
  37. package/lib/js/entity/Entity.js +5 -1
  38. package/lib/js/entity/Polyline.js +1 -1
  39. package/lib/js/layer/GeoImage.js +3 -0
  40. package/lib/js/layer/Layer.d.ts +18 -4
  41. package/lib/js/layer/Layer.js +25 -4
  42. package/lib/js/layer/XYZ.d.ts +0 -1
  43. package/lib/js/quadTree/Node.d.ts +21 -3
  44. package/lib/js/quadTree/Node.js +173 -62
  45. package/lib/js/renderer/Renderer.d.ts +0 -1
  46. package/lib/js/renderer/Renderer.js +22 -44
  47. package/lib/js/renderer/RendererEvents.d.ts +1 -0
  48. package/lib/js/renderer/RendererEvents.js +5 -7
  49. package/lib/js/scene/Planet.d.ts +33 -4
  50. package/lib/js/scene/Planet.js +206 -84
  51. package/lib/js/segment/Segment.d.ts +7 -1
  52. package/lib/js/segment/Segment.js +40 -12
  53. package/lib/js/shaders/drawnode.js +21 -2
  54. package/lib/js/shaders/geoObject.js +26 -18
  55. package/lib/js/terrain/GlobusTerrain.d.ts +3 -0
  56. package/lib/js/terrain/GlobusTerrain.js +15 -3
  57. package/lib/js/terrain/MapboxTerrain.js +29 -29
  58. package/lib/js/ui/Dialog.js +1 -1
  59. package/lib/js/utils/TerrainWorker.js +1 -1
  60. package/lib/js/utils/shared.d.ts +3 -1
  61. package/lib/js/utils/shared.js +22 -3
  62. package/package.json +2 -2
  63. package/lib/js/shaders/pickingMask.d.ts +0 -2
  64. package/lib/js/shaders/pickingMask.js +0 -22
package/README.md CHANGED
@@ -5,13 +5,14 @@
5
5
 
6
6
  English | [简体中文](README_CN.md) | [Portuguese-BR](README_pt-BR.md)
7
7
 
8
- [Openglobus](http://www.openglobus.org/) is a typescript/javascript library designed to display interactive 3D maps at a
8
+ [Openglobus](https://www.openglobus.org/) is a typescript/javascript library designed to display interactive 3D maps and other geospatial data at a
9
9
  scale from planet to bee.
10
+
10
11
  It supports various high-resolution terrain providers, imagery layers, renders thousands of 3D objects, provides
11
12
  geometry measurement tools, and more. It uses the WebGL technology, open-source and
12
13
  completely free.
13
14
 
14
- Openglobus main goal is to make 3D map features fast, good looking, user friendly and easy to implement in any
15
+ Openglobus main goal is to make 3D map features fast, good-looking, user-friendly and easy to implement in any
15
16
  related project.
16
17
 
17
18
  ## Getting Start
@@ -20,80 +21,31 @@ related project.
20
21
 
21
22
  ```sh
22
23
  npm install @openglobus/og
23
- # or
24
- yarn add @openglobus/og
25
- ```
26
-
27
- ### Code: using umd lib
28
-
29
- ```html
30
-
31
- <link rel="stylesheet" href="../lib/@openglogus/og.css">
32
- <script src="../lib/@openglogus/og.umd.js"></script>
33
- <div id="globus"></div>
34
- <script>
35
-
36
- const osm = new og.layer.XYZ("OpenStreetMap", {
37
- isBaseLayer: true,
38
- url: "//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
39
- visibility: true,
40
- });
41
-
42
- const globus = new og.Globe({
43
- target: "globus", // a HTMLDivElement which its id is `globus`
44
- name: "Earth",
45
- terrain: new og.terrain.GlobusTerrain(),
46
- layers: [osm],
47
- autoActivate: true,
48
- fontsSrc: "../res/fonts", // Fonts folder
49
- resourcesSrc: "../res", // Night and water mask terxtures folder
50
- viewExtent: [5.56707, 45.15679, 5.88834, 45.22260]
51
- });
52
-
53
- </script>
54
24
  ```
55
25
 
56
- ### Code: using esm lib
26
+ ### Fast initialization
57
27
 
58
- ```html
28
+ Create your first openglobus application with [create-openglobus](https://www.npmjs.com/package/create-openglobus) template. It support js, ts + react, etc.
59
29
 
60
- <link rel="stylesheet" href="../lib/@openglobus/og.css">
61
- <div id="globus"></div>
62
- <script type="module">
30
+ Run:
63
31
 
64
- import {XYZ, Globe, GlobusTerrain} from '../lib/@openglobus/og.esm.js';
32
+ ```sh
33
+ npx create-openglobus
34
+ ```
65
35
 
66
- const osm = new XYZ("OpenStreetMap", {
67
- isBaseLayer: true,
68
- url: "//{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
69
- visibility: true,
70
- });
36
+ ## React integration
71
37
 
72
- const globus = new Globe({
73
- target: "globus", // a HTMLDivElement which its id is `globus`
74
- name: "Earth",
75
- terrain: new GlobusTerrain(),
76
- layers: [osm],
77
- autoActivate: true,
78
- fontsSrc: "../res/fonts", // Fonts folder
79
- resourcesSrc: "../res", // Night and water mask terxtures folder
80
- viewExtent: [5.56707, 45.15679, 5.88834, 45.22260]
81
- });
38
+ Openglobus React module is available with [openglobus-react](https://github.com/openglobus/openglobus-react) package.
82
39
 
83
- </script>
40
+ ```sh
41
+ npm i @openglobus/openglobus-react
84
42
  ```
85
43
 
86
- ## Frameworks integrations
87
-
88
- Openglobus integrates well with front-end frameworks like React, Angular or
89
- Vuejs [Read more here](./framework-intergration.md).
90
-
91
- ## Documentation
44
+ ## Documentation and Examples
92
45
 
93
- UNDER CONSTRUCTION
94
- Here is a [Wiki](https://github.com/openglobus/openglobus/wiki), also
95
- check out the [hosted examples](http://www.openglobus.org/examples.html), and
96
- the [API documentation](http://www.openglobus.org/api/).
46
+ - [Examples](https://sandbox.openglobus.org)
47
+ - [Wiki](https://github.com/openglobus/openglobus/wiki)
48
+ - [API documentation](https://www.openglobus.org/api/)
97
49
 
98
50
  ## Get Started to contribute
99
51
 
@@ -104,8 +56,6 @@ the [API documentation](http://www.openglobus.org/api/).
104
56
 
105
57
  ```sh
106
58
  npm install
107
- # if you use yarn, you can run `yarn`
108
- yarn
109
59
  ```
110
60
 
111
61
  ### Build Library
@@ -162,11 +112,12 @@ Third, try an example from the sandbox:
162
112
  There are many ways to contribute back to the project:
163
113
 
164
114
  - Help us test new and existing features and report [bugs](https://github.com/openglobus/openglobus/issues)
165
- - Help answer questions on the community [forum](https://groups.google.com/d/forum/openglobus)
115
+ - Help answer questions on the community [forum](https://github.com/openglobus/openglobus/discussions)
166
116
  and [chat](https://gitter.im/openglobus/og)
167
117
  - ⭐️ us on GitHub
168
118
  - Spread the word about openglobus on [social media](https://twitter.com/openglobus)
169
119
  - Become a contributor
120
+ - [Support with money](https://opencollective.com/openglobusjs)
170
121
 
171
122
  ## License
172
123
 
package/css/og.css CHANGED
@@ -252,79 +252,94 @@ input {
252
252
  }
253
253
 
254
254
  .og-button__active {
255
- background: var(--grey2);
255
+ background-color: var(--grey2);
256
256
  }
257
257
 
258
258
  /* =============================== */
259
259
  /* 1 - LAYER SWITCHER */
260
260
 
261
- .og-layerswitcher_button {
261
+ .og-layerSwitcher_button {
262
262
  top: 12px;
263
263
  right: 12px;
264
264
  }
265
265
 
266
- .og-layer-switcher-record {
267
- overflow: hidden;
268
- white-space: nowrap;
269
- text-overflow: ellipsis;
270
- color: white;
271
- font-size: 14px;
272
- font-weight: 250;
273
- font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
266
+ .og-layerSwitcher {
267
+ position: relative;
268
+ color: #b6b6b6;
269
+ width: 100%;
270
+ height: 100%;
271
+ overflow-x: hidden;
272
+ overflow-y: auto;
274
273
  }
275
274
 
276
- .og-layer-switcher-record.og-depth-1,
277
- .og-layer-switcher-record.og-depth-2 {
278
- color: white;
275
+ .og-layerSwitcher__title {
276
+ position: relative;
277
+ color: #b6b6b6;
279
278
  font-size: 14px;
280
- font-weight: 250;
281
- }
282
-
283
- .og-layer-switcher-record.overlays > * {
284
- display: inline;
279
+ width: 100%;
280
+ padding: 5px;
285
281
  }
286
282
 
287
- .og-layer-switcher-record.overlays > input {
288
- vertical-align: top;
283
+ .og-layerSwitcher__list {
284
+ position: relative;
285
+ width: 100%;
286
+ display: inline-block;
287
+ flex-direction: column;
288
+ padding: 2px;
289
289
  }
290
290
 
291
- .og-layer-switcher-record.og-depth-0:nth-child(2) {
291
+ .og-layerSwitcher__layerButton {
292
+ width: 75px;
293
+ height: 75px;
294
+ position: relative;
295
+ background-color: #7a7a7a;
296
+ cursor: pointer;
297
+ border-radius: 5px;
298
+ margin: 3px;
299
+ border: 2px solid rgba(0, 0, 0, 0);
300
+ padding: 0;
292
301
  }
293
302
 
294
- .og-layer-switcher-record.og-depth-0 {
303
+ .og-layerSwitcher__layerButton.og-layerSwitcher__visible {
304
+ border: 2px solid white;
295
305
  }
296
306
 
297
- .og-layer-switcher-record.og-depth-0 input {
298
- margin-left: 18px;
307
+ .og-layerSwitcher__layerButton.og-layerSwitcher__visible img {
308
+ opacity: 1.0;
299
309
  }
300
310
 
301
- .og-layer-switcher-record-title {
302
- }
303
311
 
304
- details .og-layer-switcher-record {
305
- padding-top: 7px;
306
- padding-bottom: 3px;
312
+ .og-layerSwitcher__layerButton img {
313
+ width: 100%;
314
+ height: 100%;
315
+ border-radius: 5px;
316
+ position: absolute;
317
+ left: 0;
318
+ top: 0;
319
+ opacity: 1.0;
307
320
  }
308
321
 
309
- details > summary {
310
- background: var(--grey1);
311
- padding: 0px 7px 3px;
312
- border-top: 1px solid var(--grey0);
322
+ .og-layerSwitcher__layerButton img:hover {
323
+ opacity: 1.0;
313
324
  }
314
325
 
315
- details[open] {
316
- padding-bottom: 10px;
317
- }
326
+ .og-layerSwitcher__layerButton_title {
318
327
 
319
- .og-layer-switcher-dropZone {
320
- display: block !important;
321
- height: 4px;
322
- margin-left: 4px;
323
328
  }
324
329
 
325
- .og-layer-switcher-dropZone.og-drag-over {
326
- background-color: var(--blue0);
327
- opacity: 0.5;
330
+ .og-layerSwitcher__name {
331
+ color: var(--grey8);
332
+ font-size: 12px;
333
+ overflow: hidden;
334
+ text-overflow: ellipsis;
335
+ padding: 3px;
336
+ background-color: rgba(0, 0, 0, 0.5);
337
+ position: absolute;
338
+ bottom: 0;
339
+ width: calc(100% - 6px);
340
+ border-bottom-left-radius: 5px;
341
+ border-bottom-right-radius: 5px;
342
+ max-height: 25px;
328
343
  }
329
344
 
330
345
  /* =============================== */
@@ -666,7 +681,7 @@ details[open] {
666
681
 
667
682
  .og-lat-val,
668
683
  .og-lon-val {
669
- width: 65px;
684
+ width: 79px;
670
685
  padding-right: 3px;
671
686
  text-align: left;
672
687
  text-overflow: unset;
@@ -733,7 +748,7 @@ TIMELINE
733
748
  width: 100%;
734
749
  height: 100%;
735
750
  background: rgb(45 45 45);
736
- position: absolute;
751
+ position: relative;
737
752
  left: 0;
738
753
  bottom: 0;
739
754
  overflow: hidden;
@@ -894,4 +909,252 @@ TIMELINE
894
909
  .og-geoimagegrag_button {
895
910
  top: 169px;
896
911
  right: 12px;
912
+ }
913
+
914
+ .og-elevationprofile {
915
+ width: 100%;
916
+ height: 100%;
917
+ position: absolute;
918
+ overflow: hidden;
919
+ }
920
+
921
+ .og-elevationprofile__container {
922
+ position: relative;
923
+ width: 100%;
924
+ height: 100%;
925
+ display: flex;
926
+ flex-direction: column;
927
+ align-content: center;
928
+ align-items: center;
929
+ }
930
+
931
+ .og-elevationprofile__menu {
932
+ position: relative;
933
+ width: 100%;
934
+ height: 43px;
935
+ }
936
+
937
+ .og-elevationprofile__graph {
938
+ position: relative;
939
+ width: 100%;
940
+ height: 100%;
941
+ }
942
+
943
+ .og-elevationprofile_button {
944
+ top: 175px;
945
+ left: 10px;
946
+ }
947
+
948
+ .og-elevationprofile-legend {
949
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
950
+ font-size: 12px;
951
+ color: var(--grey8);
952
+ position: absolute;
953
+ top: 0;
954
+ right: 0;
955
+ margin: 5px;
956
+ display: flex;
957
+ z-index: 1;
958
+ }
959
+
960
+ .og-elevationprofile-legend__row {
961
+ position: relative;
962
+ padding: 5px;
963
+ width: 70px;
964
+ }
965
+
966
+ .og-elevationprofile-square {
967
+ position: relative;
968
+ float: left;
969
+ width: 6px;
970
+ height: 6px;
971
+ margin: 5px;
972
+ }
973
+
974
+ .og-elevationprofile-legend__track .og-elevationprofile-square {
975
+ background-color: rgb(0, 255, 50);
976
+ }
977
+
978
+ .og-elevationprofile-legend__ground .og-elevationprofile-square {
979
+ background-color: rgb(198, 198, 198);
980
+ }
981
+
982
+ .og-elevationprofile-legend__warning .og-elevationprofile-square {
983
+ background-color: rgb(255, 255, 0);
984
+ }
985
+
986
+ .og-elevationprofile-legend__collision .og-elevationprofile-square {
987
+ background-color: rgb(255, 0, 0);
988
+ }
989
+
990
+ .og-elevationprofile-units {
991
+ display: inline-block;
992
+ position: relative;
993
+ float: left;
994
+ padding-left: 5px;
995
+ }
996
+
997
+ .og-elevationprofile-value {
998
+ width: 30px;
999
+ display: inline-block;
1000
+ position: relative;
1001
+ float: left;
1002
+ text-align: right;
1003
+ white-space: nowrap;
1004
+ overflow: hidden;
1005
+ text-overflow: ellipsis;
1006
+ }
1007
+
1008
+ .og-elevationprofile-buttons {
1009
+ display: inline-block;
1010
+ position: absolute;
1011
+ top: 0;
1012
+ left: 0;
1013
+ }
1014
+
1015
+ .og-elevationprofile-button {
1016
+ width: 25px;
1017
+ height: 25px;
1018
+ float: left;
1019
+ margin: 3px;
1020
+ /*background-color: var(--grey2);*/
1021
+ }
1022
+
1023
+
1024
+ .og-elevationprofile-list {
1025
+ position: relative;
1026
+ width: 100%;
1027
+ height: 100%;
1028
+ display: flex;
1029
+ flex-direction: column;
1030
+ }
1031
+
1032
+ .og-elevationprofile-list textarea {
1033
+ position: relative;
1034
+ width: 100%;
1035
+ height: 100%;
1036
+ resize: none;
1037
+ background: var(--grey8);
1038
+ padding: 5px;
1039
+ }
1040
+
1041
+ .og-elevationprofile-list-buttons {
1042
+ position: relative;
1043
+ height: 60px;
1044
+ display: flex;
1045
+ flex-direction: row;
1046
+ align-items: center;
1047
+ justify-content: right;
1048
+ }
1049
+
1050
+ .og-elevationprofile-list-apply {
1051
+ padding: 4px 10px 7px 10px;
1052
+ float: right;
1053
+ background-color: var(--grey2);
1054
+ margin-right: 15px;
1055
+ }
1056
+
1057
+ .og-elevationprofile_pointer {
1058
+ position: absolute;
1059
+ left: 0;
1060
+ top: 0;
1061
+ height: 100%;
1062
+ }
1063
+
1064
+ .og-elevationprofile-line {
1065
+ position: absolute;
1066
+ background-color: white;
1067
+ width: 3px;
1068
+ height: 30px;
1069
+ margin-left: -1.5px;
1070
+ }
1071
+
1072
+ .og-elevationprofile-label {
1073
+ position: absolute;
1074
+ top: 0;
1075
+ left: 0;
1076
+ color: white;
1077
+ }
1078
+
1079
+ .og-elevationprofile-button__location svg {
1080
+ width: 17px;
1081
+ height: 17px;
1082
+ }
1083
+
1084
+ .og-elevationprofile-loading {
1085
+ opacity: 0.3;
1086
+ background-color: black;
1087
+ position: absolute;
1088
+ width: 100%;
1089
+ height: 100%;
1090
+ z-index: 2;
1091
+ display: flex;
1092
+ flex-direction: row;
1093
+ justify-content: center;
1094
+ align-items: center;
1095
+ }
1096
+
1097
+ @keyframes ldio-p0v5a1f6oz {
1098
+ 0% {
1099
+ opacity: 1
1100
+ }
1101
+ 50% {
1102
+ opacity: .5
1103
+ }
1104
+ 100% {
1105
+ opacity: 1
1106
+ }
1107
+ }
1108
+
1109
+ .ldio-p0v5a1f6oz div {
1110
+ position: absolute;
1111
+ width: 11px;
1112
+ height: 40px;
1113
+ top: 30px;
1114
+ animation: ldio-p0v5a1f6oz 0.9345794392523364s cubic-bezier(0.5, 0, 0.5, 1) infinite;
1115
+ }
1116
+
1117
+ .ldio-p0v5a1f6oz div:nth-child(1) {
1118
+ transform: translate(14.5px, 0);
1119
+ background: #353535;
1120
+ animation-delay: -0.5607476635514018s;
1121
+ }
1122
+
1123
+ .ldio-p0v5a1f6oz div:nth-child(2) {
1124
+ transform: translate(34.5px, 0);
1125
+ background: #666666;
1126
+ animation-delay: -0.37383177570093457s;
1127
+ }
1128
+
1129
+ .ldio-p0v5a1f6oz div:nth-child(3) {
1130
+ transform: translate(54.5px, 0);
1131
+ background: #9b9b9b;
1132
+ animation-delay: -0.18691588785046728s;
1133
+ }
1134
+
1135
+ .ldio-p0v5a1f6oz div:nth-child(4) {
1136
+ transform: translate(74.5px, 0);
1137
+ background: #d4d4d4;
1138
+ animation-delay: -0.9345794392523364s;
1139
+ }
1140
+
1141
+ .loadingio-spinner-bars-r354qqyl5v {
1142
+ width: 88px;
1143
+ height: 88px;
1144
+ display: inline-block;
1145
+ overflow: hidden;
1146
+ background: none;
1147
+ }
1148
+
1149
+ .ldio-p0v5a1f6oz {
1150
+ width: 100%;
1151
+ height: 100%;
1152
+ position: relative;
1153
+ transform: translateZ(0) scale(0.88);
1154
+ backface-visibility: hidden;
1155
+ transform-origin: 0 0; /* see note above */
1156
+ }
1157
+
1158
+ .ldio-p0v5a1f6oz div {
1159
+ box-sizing: content-box;
897
1160
  }
@@ -1 +1 @@
1
- :root{--grey0:#2d2d2d;--grey1:#434244;--grey2:#3f3f46;--grey3:#bbb;--grey4:#5e5e5e;--grey5:#403b3b;--grey6:#bfbfbf;--grey7:#707070;--grey8:#e2e2e2;--blue0:#1700a9ee}.og-map-button{background-color:var(--grey5);cursor:pointer;height:40px;outline:none;position:absolute;width:40px;z-index:1}.ogCenterIcon{bottom:50%;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;position:absolute;right:50%;width:12px}.ogHandPoiner{cursor:pointer}.defaultText{color:#fff;left:0;position:absolute;top:0}#ogShowFpsControl{color:red}.ogGrabbingPoiner{cursor:grabbing!important}.og-inner{background-color:#000;float:left;height:100%;overflow:hidden;position:relative;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none;width:100%}.og-attribution{background:#cecece;bottom:0;display:flex;flex-direction:row;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:.7rem;line-height:1.375em;padding:1px 0;position:absolute;right:0;text-align:right}.og-attribution .og-attribution__layer{align-items:center;display:inline;margin-left:5px;margin-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.og-attribution img{max-height:1.3em}.og-zoomin-button{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;bottom:102px;right:12px}.og-zoomout-button{border-top-left-radius:0!important;border-top-right-radius:0!important;bottom:58px;right:12px}input{accent-color:var(--blue0);cursor:pointer}.og-menu-bar-vertical{background-color:rgba(64,59,59,.85);border-radius:2px;box-shadow:0 1px 4px hsla(0,0%,6%,.17);height:40px;position:absolute;right:12px;top:12px;width:40px;z-index:0}.og-hide{display:none!important}.og-not-visible{visibility:hidden!important}.og-ddialog{background-color:var(--grey0);border:1px solid;border-color:var(--grey1);border-radius:4px;box-shadow:3px 3px 4px hsla(0,0%,6%,.17);display:flex;flex-direction:column;overflow:auto;position:absolute}.og-ddialog .og-ddialog-header{align-items:center;background-color:var(--grey2);color:#fff;display:flex;flex-direction:row;height:27px;justify-content:space-between;padding:0;position:relative;width:100%;z-index:1}.og-ddialog .og-ddialog-header .og-ddialog-header__title{color:var(--grey3);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400;padding-left:5px;pointer-events:none}.og-ddialog .og-ddialog-header .og-ddialog-header__buttons{display:flex;flex-direction:row;justify-content:flex-end}.og-ddialog .og-ddialog-header .og-ddialog-header__buttons .og-button{border-radius:0}.og-ddialog .og-ddialog-container{font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;height:100%;overflow:auto;position:relative;width:100%}.og-ddialog.dragging{user-select:none}.og-button{align-content:center;align-items:center;border-radius:4px;color:var(--grey6);cursor:default;display:flex;flex-direction:row;justify-content:center;padding:2px}.og-button svg,.og-button svg path{fill:var(--grey6)}.og-button__active.og-button svg,.og-button__active.og-button svg path{fill:#fff}.og-button .og-button-text{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400}.og-button:hover{background-color:var(--grey4)}.og-button-size__20{height:20px;width:20px}.og-button__active{background:var(--grey2)}.og-layerswitcher_button{right:12px;top:12px}.og-layer-switcher-record{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.og-layer-switcher-record,.og-layer-switcher-record.og-depth-1,.og-layer-switcher-record.og-depth-2{color:#fff;font-size:14px;font-weight:250}.og-layer-switcher-record.overlays>*{display:inline}.og-layer-switcher-record.overlays>input{vertical-align:top}.og-layer-switcher-record.og-depth-0 input{margin-left:18px}details .og-layer-switcher-record{padding-bottom:3px;padding-top:7px}details>summary{background:var(--grey1);border-top:1px solid var(--grey0);padding:0 7px 3px}details[open]{padding-bottom:10px}.og-layer-switcher-dropZone{display:block!important;height:4px;margin-left:4px}.og-layer-switcher-dropZone.og-drag-over{background-color:var(--blue0);opacity:.5}.displayNone{display:none}.displayBlock{display:block}.og-drawing-default_button{right:166px;top:12px}.og-drawing-default_button .og-button-icon{transform:scale(.73)}.og-drawing-polygon_button{right:115px;top:12px}.og-drawing-linestring_button{right:66px;top:12px}.og-ruler_button{right:12px;top:65px}.ogConsole{background-color:hsla(0,0%,51%,.49);color:#fff;font-family:Arial;font-size:14px;left:0;max-height:70%;overflow:auto;pointer-events:none;position:absolute;top:0;width:100%;z-index:100000000}.ogConsole-text{overflow:hidden;padding:7px}.ogConsole-error{color:red}.ogConsole-warning{color:#ff0}.ogViewExtentBtn{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYEAQAAAAa7ikwAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAABgAAAAYADwa0LPAAAAB3RJTUUH5ggMBTM4rM25AwAAAAJiS0dEAACqjSMyAAABsUlEQVRIx81WWYrCQBAVg4Iwbp8ud5DoYRRBxPMoouiPegQVPYp6Azdc/ly++01XKkmPksQ4ZmAKAr3V0u9VVScU8ikQkQhwuRifHIeCFiAWgy2xWHCGRSIBVKtAt6scdDrGmtz7IOJUyjAk7ne4Ce2JdhsimXzTeKkE7PfK0vEIjMdqTuPTSc23W6BY9G/cjvpwgKjVmOBHDnitXmfnJLcboOs+YNntWGGxADIZtRcOQ4xGEMMhjdV6Ngssl6yz2XjywuSZkf8w/vrW5MS8iWi13LPFgkbC8n5SEFwmVOLry+EApaJJ6C8KCSIaVcRXKk8FlE4D/T5vzmY81zT/0Wsa68znbKPX47ksSC5/JxkM/EdPxDvJ5RKMA3nWw8EfQxQsyecz2yiXvdNUptz7adposO716pim7EQ2Lrv3ZLP+o8/n7RQVzabHwWSSGxcJlb9y4t4qcjlgtWKd9RoiHn9x1WKRG5d1E1mhBr7PzY7WCBaruAiaQsEnnrpuNC5biLzJRL0D06ki1Ircp/FH0lstdRsnoaibzZeweDuKx6m3qE5rPZnlsmu2/KtH/9Pflm+sYR/yIsaCAQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wOC0xMlQwNTo1MTo1NiswMDowMIPhE+YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDgtMTJUMDU6NTE6NTYrMDA6MDDyvKtaAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDIyLTA4LTEyVDA1OjUxOjU2KzAwOjAwpamKhQAAAABJRU5ErkJggg==) 50% no-repeat;cursor:pointer;height:24px;margin-left:12px;scale:70%;width:24px}.ogViewExtentBtn:hover{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYEAQAAAAa7ikwAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAABgAAAAYADwa0LPAAAAB3RJTUUH5ggMBTM4rM25AwAAAAJiS0dEAACqjSMyAAABsUlEQVRIx81WWYrCQBAVg4Iwbp8ud5DoYRRBxPMoouiPegQVPYp6Azdc/ly++01XKkmPksQ4ZmAKAr3V0u9VVScU8ikQkQhwuRifHIeCFiAWgy2xWHCGRSIBVKtAt6scdDrGmtz7IOJUyjAk7ne4Ce2JdhsimXzTeKkE7PfK0vEIjMdqTuPTSc23W6BY9G/cjvpwgKjVmOBHDnitXmfnJLcboOs+YNntWGGxADIZtRcOQ4xGEMMhjdV6Ngssl6yz2XjywuSZkf8w/vrW5MS8iWi13LPFgkbC8n5SEFwmVOLry+EApaJJ6C8KCSIaVcRXKk8FlE4D/T5vzmY81zT/0Wsa68znbKPX47ksSC5/JxkM/EdPxDvJ5RKMA3nWw8EfQxQsyecz2yiXvdNUptz7adposO716pim7EQ2Lrv3ZLP+o8/n7RQVzabHwWSSGxcJlb9y4t4qcjlgtWKd9RoiHn9x1WKRG5d1E1mhBr7PzY7WCBaruAiaQsEnnrpuNC5biLzJRL0D06ki1Ircp/FH0lstdRsnoaibzZeweDuKx6m3qE5rPZnlsmu2/KtH/9Pflm+sYR/yIsaCAQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wOC0xMlQwNTo1MTo1NiswMDowMIPhE+YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDgtMTJUMDU6NTE6NTYrMDA6MDDyvKtaAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDIyLTA4LTEyVDA1OjUxOjU2KzAwOjAwpamKhQAAAABJRU5ErkJggg==) 50% no-repeat,var(--blue0);border-radius:10px}.og-debuginfo_button{left:10px;position:absolute;top:120px}.og-debuginfo_controls{display:flex;padding-bottom:8px}.og-debuginfo_controls-button{float:left;height:25px;margin:3px;width:25px}.og-debug-info{color:#fff;font-size:12px;padding:10px}.og-debug-info .og-watch-line{display:flex;flex-direction:row;padding-bottom:5px;width:100%}.og-watch-line .og-watch-label{color:#cecece;width:200px}.og-watch-line .og-watch-value{margin-left:15px}.og-popup{bottom:-2px;position:absolute;text-align:center}.og-popup-content-wrapper,.og-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4);color:#333}.og-popup-content-wrapper{border-radius:8px;min-height:17px;min-width:30px;padding:1px;text-align:left}.og-popup-content{line-height:1.4;margin:20px 5px 5px}.og-popup-tip-container{bottom:-19px;height:20px;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none;position:absolute;width:40px}.og-popup-tip{height:17px;margin:-10px auto 0;padding:1px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:17px}.og-popup-toolbar{display:inline-block;position:absolute;right:2px;top:3px}.og-popup-btn{cursor:pointer;float:right;height:15px;width:15px}.og-popup-btn:hover{color:#2e9be7}.og-popup-title{font-size:14px;left:5px;position:absolute;top:3px}.og-scale-container{bottom:30px;position:absolute;right:320px}.og-scale-label{color:#fff;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:12px;position:relative;text-align:center}.og-scale-ruler{border-bottom:2px solid #fff;border-left:1px solid #fff;border-right:1px solid #fff;height:7px;position:relative}.og-compass-button{bottom:153px;right:12px}.og-compass-button svg{height:40px!important;width:40px!important}.og-suncontrol-button{float:left;height:25px;margin:3px;width:25px}.og-lighting_button{left:10px;position:absolute;top:65px}.og-lighing{color:#b6b6b6;height:calc(100% - 30px);padding:12px;position:relative}.og-lighing .og-layers{align-items:center;display:flex;flex-direction:row}.og-lighing .og-caption{position:relative}.og-lighing .og-lighting-emptyline{padding:3px;width:100%}.og-lighing .og-option{align-items:center;display:inline-block;flex-direction:row;justify-content:left;padding-bottom:7px;position:relative;text-overflow:ellipsis;width:100%}.og-lighing .og-slider{width:100%}.og-lighing .og-slider .og-slider-label{font-size:12px;width:100px}.og-lighing #layers{font-family:monospace;margin-left:21px;padding:2px;width:200px}.og-coordinates{background-color:var(--grey5);border-radius:4px;bottom:25px;color:var(--grey8);cursor:pointer;float:left;font-family:monospace;font-size:1em;overflow:hidden;padding:5px;position:absolute;right:12px;text-align:right}.og-coordinates div{float:left}.og-lat-side,.og-lon-side{padding-right:3px;width:10px}.og-lat-val,.og-lon-val{overflow:hidden;padding-right:3px;text-align:left;text-overflow:unset;width:65px}.og-height{overflow:hidden;padding-left:3px;text-align:right;text-overflow:ellipsis;width:36px}.og-units-height{padding-left:3px;text-align:left;width:15px}.og-center-icon{bottom:50%;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;pointer-events:none;position:absolute;right:50%;width:12px}.og-timeline_button{left:10px;position:absolute;top:10px}.og-timeline-control_button{background:var(--grey7);border-radius:1px;height:20px;margin-left:3px;margin-right:3px;width:25px}.og-button svg,.og-button svg path{height:24px;width:24px}.og-timeline-control_button.og-button__active{background:var(--grey3)}.og-timeline{background:#2d2d2d;bottom:0;height:100%;left:0;overflow:hidden;position:absolute;width:100%}.og-timeline-frame{height:30px;margin:0 0 0 10px;position:relative;width:calc(100% - 20px)}.og-timeline-scale{height:100%;overflow:hidden;width:100%}.og-timeline-current{cursor:pointer;height:100%;left:0;margin-left:-5px;margin-top:-7px;position:absolute;width:11px}.og-timeline-current-spin{background-color:#ff3434;height:100%;margin:0 auto;pointer-events:none;width:1px}.og-timeline-current-arrow{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ff3434;height:0;margin-left:-6px;width:0}.og-timeline-bottom{margin-top:3px;width:100%}.og-timeline-bottom,.og-timeline-controls{display:flex;justify-content:center;position:relative}.og-timeline-controls{align-items:center;border-radius:10px;flex-direction:row;padding:8px}.og-timeline-unselectable{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.og-timeline-top{display:block;height:15px;width:100%}.og-slider{display:flex;flex-direction:row;height:20px;width:200px}.og-slider .og-slider-label{align-items:center;color:var(--grey6);display:flex;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;height:100%;text-align:left;width:100%}.og-slider .og-slider-panel{background-color:var(--grey1);height:100%;position:relative;width:100%;z-index:1}.og-slider .og-slider-panel .og-slider-progress{background-color:var(--grey7);height:100%;pointer-events:none;position:absolute}.og-slider .og-slider-panel .og-slider-pointer{background-color:var(--grey3);height:100%;left:0;pointer-events:none;position:absolute;top:0;width:3px}.og-slider input{background:var(--grey5);border:1px solid var(--grey1);color:var(--grey3);height:100%;padding-left:5px;position:relative;width:100%;width:60px;z-index:0}.og-slider input:focus-visible{outline:none}.og-slider input::-webkit-inner-spin-button,.og-slider input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.og-slider input[type=number]{-moz-appearance:textfield}.og-selection_button{right:12px;top:117px}.og-geoimagegrag_button{right:12px;top:169px}
1
+ :root{--grey0:#2d2d2d;--grey1:#434244;--grey2:#3f3f46;--grey3:#bbb;--grey4:#5e5e5e;--grey5:#403b3b;--grey6:#bfbfbf;--grey7:#707070;--grey8:#e2e2e2;--blue0:#1700a9ee}.og-map-button{background-color:var(--grey5);cursor:pointer;height:40px;outline:none;position:absolute;width:40px;z-index:1}.ogCenterIcon{bottom:50%;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;position:absolute;right:50%;width:12px}.ogHandPoiner{cursor:pointer}.defaultText{color:#fff;left:0;position:absolute;top:0}#ogShowFpsControl{color:red}.ogGrabbingPoiner{cursor:grabbing!important}.og-inner{background-color:#000;float:left;height:100%;overflow:hidden;position:relative;-webkit-user-select:none;-moz-user-select:none;-khtml-user-select:none;-ms-user-select:none;width:100%}.og-attribution{background:#cecece;bottom:0;display:flex;flex-direction:row;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:.7rem;line-height:1.375em;padding:1px 0;position:absolute;right:0;text-align:right}.og-attribution .og-attribution__layer{align-items:center;display:inline;margin-left:5px;margin-right:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.og-attribution img{max-height:1.3em}.og-zoomin-button{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;bottom:102px;right:12px}.og-zoomout-button{border-top-left-radius:0!important;border-top-right-radius:0!important;bottom:58px;right:12px}input{accent-color:var(--blue0);cursor:pointer}.og-menu-bar-vertical{background-color:rgba(64,59,59,.85);border-radius:2px;box-shadow:0 1px 4px hsla(0,0%,6%,.17);height:40px;position:absolute;right:12px;top:12px;width:40px;z-index:0}.og-hide{display:none!important}.og-not-visible{visibility:hidden!important}.og-ddialog{background-color:var(--grey0);border:1px solid;border-color:var(--grey1);border-radius:4px;box-shadow:3px 3px 4px hsla(0,0%,6%,.17);display:flex;flex-direction:column;overflow:auto;position:absolute}.og-ddialog .og-ddialog-header{align-items:center;background-color:var(--grey2);color:#fff;display:flex;flex-direction:row;height:27px;justify-content:space-between;padding:0;position:relative;width:100%;z-index:1}.og-ddialog .og-ddialog-header .og-ddialog-header__title{color:var(--grey3);font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400;padding-left:5px;pointer-events:none}.og-ddialog .og-ddialog-header .og-ddialog-header__buttons{display:flex;flex-direction:row;justify-content:flex-end}.og-ddialog .og-ddialog-header .og-ddialog-header__buttons .og-button{border-radius:0}.og-ddialog .og-ddialog-container{font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;height:100%;overflow:auto;position:relative;width:100%}.og-ddialog.dragging{user-select:none}.og-button{align-content:center;align-items:center;border-radius:4px;color:var(--grey6);cursor:default;display:flex;flex-direction:row;justify-content:center;padding:2px}.og-button svg,.og-button svg path{fill:var(--grey6)}.og-button__active.og-button svg,.og-button__active.og-button svg path{fill:#fff}.og-button .og-button-text{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:14px;font-weight:400}.og-button:hover{background-color:var(--grey4)}.og-button-size__20{height:20px;width:20px}.og-button__active{background-color:var(--grey2)}.og-layerSwitcher_button{right:12px;top:12px}.og-layerSwitcher{color:#b6b6b6;height:100%;overflow-x:hidden;overflow-y:auto;position:relative;width:100%}.og-layerSwitcher__title{color:#b6b6b6;font-size:14px;padding:5px;position:relative;width:100%}.og-layerSwitcher__list{display:inline-block;flex-direction:column;padding:2px;position:relative;width:100%}.og-layerSwitcher__layerButton{background-color:#7a7a7a;border:2px solid transparent;border-radius:5px;cursor:pointer;height:75px;margin:3px;padding:0;position:relative;width:75px}.og-layerSwitcher__layerButton.og-layerSwitcher__visible{border:2px solid #fff}.og-layerSwitcher__layerButton.og-layerSwitcher__visible img{opacity:1}.og-layerSwitcher__layerButton img{border-radius:5px;height:100%;left:0;opacity:1;position:absolute;top:0;width:100%}.og-layerSwitcher__layerButton img:hover{opacity:1}.og-layerSwitcher__name{background-color:rgba(0,0,0,.5);border-bottom-left-radius:5px;border-bottom-right-radius:5px;bottom:0;color:var(--grey8);font-size:12px;max-height:25px;overflow:hidden;padding:3px;position:absolute;text-overflow:ellipsis;width:calc(100% - 6px)}.displayNone{display:none}.displayBlock{display:block}.og-drawing-default_button{right:166px;top:12px}.og-drawing-default_button .og-button-icon{transform:scale(.73)}.og-drawing-polygon_button{right:115px;top:12px}.og-drawing-linestring_button{right:66px;top:12px}.og-ruler_button{right:12px;top:65px}.ogConsole{background-color:hsla(0,0%,51%,.49);color:#fff;font-family:Arial;font-size:14px;left:0;max-height:70%;overflow:auto;pointer-events:none;position:absolute;top:0;width:100%;z-index:100000000}.ogConsole-text{overflow:hidden;padding:7px}.ogConsole-error{color:red}.ogConsole-warning{color:#ff0}.ogViewExtentBtn{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYEAQAAAAa7ikwAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAABgAAAAYADwa0LPAAAAB3RJTUUH5ggMBTM4rM25AwAAAAJiS0dEAACqjSMyAAABsUlEQVRIx81WWYrCQBAVg4Iwbp8ud5DoYRRBxPMoouiPegQVPYp6Azdc/ly++01XKkmPksQ4ZmAKAr3V0u9VVScU8ikQkQhwuRifHIeCFiAWgy2xWHCGRSIBVKtAt6scdDrGmtz7IOJUyjAk7ne4Ce2JdhsimXzTeKkE7PfK0vEIjMdqTuPTSc23W6BY9G/cjvpwgKjVmOBHDnitXmfnJLcboOs+YNntWGGxADIZtRcOQ4xGEMMhjdV6Ngssl6yz2XjywuSZkf8w/vrW5MS8iWi13LPFgkbC8n5SEFwmVOLry+EApaJJ6C8KCSIaVcRXKk8FlE4D/T5vzmY81zT/0Wsa68znbKPX47ksSC5/JxkM/EdPxDvJ5RKMA3nWw8EfQxQsyecz2yiXvdNUptz7adposO716pim7EQ2Lrv3ZLP+o8/n7RQVzabHwWSSGxcJlb9y4t4qcjlgtWKd9RoiHn9x1WKRG5d1E1mhBr7PzY7WCBaruAiaQsEnnrpuNC5biLzJRL0D06ki1Ircp/FH0lstdRsnoaibzZeweDuKx6m3qE5rPZnlsmu2/KtH/9Pflm+sYR/yIsaCAQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wOC0xMlQwNTo1MTo1NiswMDowMIPhE+YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDgtMTJUMDU6NTE6NTYrMDA6MDDyvKtaAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDIyLTA4LTEyVDA1OjUxOjU2KzAwOjAwpamKhQAAAABJRU5ErkJggg==) 50% no-repeat;cursor:pointer;height:24px;margin-left:12px;scale:70%;width:24px}.ogViewExtentBtn:hover{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYEAQAAAAa7ikwAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAABgAAAAYADwa0LPAAAAB3RJTUUH5ggMBTM4rM25AwAAAAJiS0dEAACqjSMyAAABsUlEQVRIx81WWYrCQBAVg4Iwbp8ud5DoYRRBxPMoouiPegQVPYp6Azdc/ly++01XKkmPksQ4ZmAKAr3V0u9VVScU8ikQkQhwuRifHIeCFiAWgy2xWHCGRSIBVKtAt6scdDrGmtz7IOJUyjAk7ne4Ce2JdhsimXzTeKkE7PfK0vEIjMdqTuPTSc23W6BY9G/cjvpwgKjVmOBHDnitXmfnJLcboOs+YNntWGGxADIZtRcOQ4xGEMMhjdV6Ngssl6yz2XjywuSZkf8w/vrW5MS8iWi13LPFgkbC8n5SEFwmVOLry+EApaJJ6C8KCSIaVcRXKk8FlE4D/T5vzmY81zT/0Wsa68znbKPX47ksSC5/JxkM/EdPxDvJ5RKMA3nWw8EfQxQsyecz2yiXvdNUptz7adposO716pim7EQ2Lrv3ZLP+o8/n7RQVzabHwWSSGxcJlb9y4t4qcjlgtWKd9RoiHn9x1WKRG5d1E1mhBr7PzY7WCBaruAiaQsEnnrpuNC5biLzJRL0D06ki1Ircp/FH0lstdRsnoaibzZeweDuKx6m3qE5rPZnlsmu2/KtH/9Pflm+sYR/yIsaCAQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMi0wOC0xMlQwNTo1MTo1NiswMDowMIPhE+YAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjItMDgtMTJUMDU6NTE6NTYrMDA6MDDyvKtaAAAAKHRFWHRkYXRlOnRpbWVzdGFtcAAyMDIyLTA4LTEyVDA1OjUxOjU2KzAwOjAwpamKhQAAAABJRU5ErkJggg==) 50% no-repeat,var(--blue0);border-radius:10px}.og-debuginfo_button{left:10px;position:absolute;top:120px}.og-debuginfo_controls{display:flex;padding-bottom:8px}.og-debuginfo_controls-button{float:left;height:25px;margin:3px;width:25px}.og-debug-info{color:#fff;font-size:12px;padding:10px}.og-debug-info .og-watch-line{display:flex;flex-direction:row;padding-bottom:5px;width:100%}.og-watch-line .og-watch-label{color:#cecece;width:200px}.og-watch-line .og-watch-value{margin-left:15px}.og-popup{bottom:-2px;position:absolute;text-align:center}.og-popup-content-wrapper,.og-popup-tip{background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.4);color:#333}.og-popup-content-wrapper{border-radius:8px;min-height:17px;min-width:30px;padding:1px;text-align:left}.og-popup-content{line-height:1.4;margin:20px 5px 5px}.og-popup-tip-container{bottom:-19px;height:20px;left:50%;margin-left:-20px;overflow:hidden;pointer-events:none;position:absolute;width:40px}.og-popup-tip{height:17px;margin:-10px auto 0;padding:1px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);transform:rotate(45deg);width:17px}.og-popup-toolbar{display:inline-block;position:absolute;right:2px;top:3px}.og-popup-btn{cursor:pointer;float:right;height:15px;width:15px}.og-popup-btn:hover{color:#2e9be7}.og-popup-title{font-size:14px;left:5px;position:absolute;top:3px}.og-scale-container{bottom:30px;position:absolute;right:320px}.og-scale-label{color:#fff;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:12px;position:relative;text-align:center}.og-scale-ruler{border-bottom:2px solid #fff;border-left:1px solid #fff;border-right:1px solid #fff;height:7px;position:relative}.og-compass-button{bottom:153px;right:12px}.og-compass-button svg{height:40px!important;width:40px!important}.og-suncontrol-button{float:left;height:25px;margin:3px;width:25px}.og-lighting_button{left:10px;position:absolute;top:65px}.og-lighing{color:#b6b6b6;height:calc(100% - 30px);padding:12px;position:relative}.og-lighing .og-layers{align-items:center;display:flex;flex-direction:row}.og-lighing .og-caption{position:relative}.og-lighing .og-lighting-emptyline{padding:3px;width:100%}.og-lighing .og-option{align-items:center;display:inline-block;flex-direction:row;justify-content:left;padding-bottom:7px;position:relative;text-overflow:ellipsis;width:100%}.og-lighing .og-slider{width:100%}.og-lighing .og-slider .og-slider-label{font-size:12px;width:100px}.og-lighing #layers{font-family:monospace;margin-left:21px;padding:2px;width:200px}.og-coordinates{background-color:var(--grey5);border-radius:4px;bottom:25px;color:var(--grey8);cursor:pointer;float:left;font-family:monospace;font-size:1em;overflow:hidden;padding:5px;position:absolute;right:12px;text-align:right}.og-coordinates div{float:left}.og-lat-side,.og-lon-side{padding-right:3px;width:10px}.og-lat-val,.og-lon-val{overflow:hidden;padding-right:3px;text-align:left;text-overflow:unset;width:79px}.og-height{overflow:hidden;padding-left:3px;text-align:right;text-overflow:ellipsis;width:36px}.og-units-height{padding-left:3px;text-align:left;width:15px}.og-center-icon{bottom:50%;height:12px;margin-bottom:-3.5px;margin-right:-7.5px;pointer-events:none;position:absolute;right:50%;width:12px}.og-timeline_button{left:10px;position:absolute;top:10px}.og-timeline-control_button{background:var(--grey7);border-radius:1px;height:20px;margin-left:3px;margin-right:3px;width:25px}.og-button svg,.og-button svg path{height:24px;width:24px}.og-timeline-control_button.og-button__active{background:var(--grey3)}.og-timeline{background:#2d2d2d;bottom:0;height:100%;left:0;overflow:hidden;position:relative;width:100%}.og-timeline-frame{height:30px;margin:0 0 0 10px;position:relative;width:calc(100% - 20px)}.og-timeline-scale{height:100%;overflow:hidden;width:100%}.og-timeline-current{cursor:pointer;height:100%;left:0;margin-left:-5px;margin-top:-7px;position:absolute;width:11px}.og-timeline-current-spin{background-color:#ff3434;height:100%;margin:0 auto;pointer-events:none;width:1px}.og-timeline-current-arrow{border-left:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ff3434;height:0;margin-left:-6px;width:0}.og-timeline-bottom{margin-top:3px;width:100%}.og-timeline-bottom,.og-timeline-controls{display:flex;justify-content:center;position:relative}.og-timeline-controls{align-items:center;border-radius:10px;flex-direction:row;padding:8px}.og-timeline-unselectable{-moz-user-select:none;-khtml-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.og-timeline-top{display:block;height:15px;width:100%}.og-slider{display:flex;flex-direction:row;height:20px;width:200px}.og-slider .og-slider-label{align-items:center;color:var(--grey6);display:flex;font-family:Segoe UI,Frutiger,Frutiger Linotype,Dejavu Sans,Helvetica Neue,Arial,sans-serif;font-size:14px;height:100%;text-align:left;width:100%}.og-slider .og-slider-panel{background-color:var(--grey1);height:100%;position:relative;width:100%;z-index:1}.og-slider .og-slider-panel .og-slider-progress{background-color:var(--grey7);height:100%;pointer-events:none;position:absolute}.og-slider .og-slider-panel .og-slider-pointer{background-color:var(--grey3);height:100%;left:0;pointer-events:none;position:absolute;top:0;width:3px}.og-slider input{background:var(--grey5);border:1px solid var(--grey1);color:var(--grey3);height:100%;padding-left:5px;position:relative;width:100%;width:60px;z-index:0}.og-slider input:focus-visible{outline:none}.og-slider input::-webkit-inner-spin-button,.og-slider input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.og-slider input[type=number]{-moz-appearance:textfield}.og-selection_button{right:12px;top:117px}.og-geoimagegrag_button{right:12px;top:169px}.og-elevationprofile{height:100%;overflow:hidden;position:absolute;width:100%}.og-elevationprofile__container{align-content:center;align-items:center;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.og-elevationprofile__menu{height:43px;position:relative;width:100%}.og-elevationprofile__graph{height:100%;position:relative;width:100%}.og-elevationprofile_button{left:10px;top:175px}.og-elevationprofile-legend{color:var(--grey8);display:flex;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;font-size:12px;margin:5px;position:absolute;right:0;top:0;z-index:1}.og-elevationprofile-legend__row{padding:5px;position:relative;width:70px}.og-elevationprofile-square{float:left;height:6px;margin:5px;position:relative;width:6px}.og-elevationprofile-legend__track .og-elevationprofile-square{background-color:#00ff32}.og-elevationprofile-legend__ground .og-elevationprofile-square{background-color:#c6c6c6}.og-elevationprofile-legend__warning .og-elevationprofile-square{background-color:#ff0}.og-elevationprofile-legend__collision .og-elevationprofile-square{background-color:red}.og-elevationprofile-units{display:inline-block;float:left;padding-left:5px;position:relative}.og-elevationprofile-value{display:inline-block;float:left;overflow:hidden;position:relative;text-align:right;text-overflow:ellipsis;white-space:nowrap;width:30px}.og-elevationprofile-buttons{display:inline-block;left:0;position:absolute;top:0}.og-elevationprofile-button{float:left;height:25px;margin:3px;width:25px}.og-elevationprofile-list{display:flex;flex-direction:column;height:100%;position:relative;width:100%}.og-elevationprofile-list textarea{background:var(--grey8);height:100%;padding:5px;position:relative;resize:none;width:100%}.og-elevationprofile-list-buttons{align-items:center;display:flex;flex-direction:row;height:60px;justify-content:right;position:relative}.og-elevationprofile-list-apply{background-color:var(--grey2);float:right;margin-right:15px;padding:4px 10px 7px}.og-elevationprofile_pointer{height:100%;left:0;position:absolute;top:0}.og-elevationprofile-line{background-color:#fff;height:30px;margin-left:-1.5px;position:absolute;width:3px}.og-elevationprofile-label{color:#fff;left:0;position:absolute;top:0}.og-elevationprofile-button__location svg{height:17px;width:17px}.og-elevationprofile-loading{align-items:center;background-color:#000;display:flex;flex-direction:row;height:100%;justify-content:center;opacity:.3;position:absolute;width:100%;z-index:2}@keyframes ldio-p0v5a1f6oz{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.ldio-p0v5a1f6oz div{animation:ldio-p0v5a1f6oz .9345794392523364s cubic-bezier(.5,0,.5,1) infinite;height:40px;position:absolute;top:30px;width:11px}.ldio-p0v5a1f6oz div:first-child{animation-delay:-.5607476635514018s;background:#353535;transform:translate(14.5px)}.ldio-p0v5a1f6oz div:nth-child(2){animation-delay:-.37383177570093457s;background:#666;transform:translate(34.5px)}.ldio-p0v5a1f6oz div:nth-child(3){animation-delay:-.18691588785046728s;background:#9b9b9b;transform:translate(54.5px)}.ldio-p0v5a1f6oz div:nth-child(4){animation-delay:-.9345794392523364s;background:#d4d4d4;transform:translate(74.5px)}.loadingio-spinner-bars-r354qqyl5v{background:none;display:inline-block;height:88px;overflow:hidden;width:88px}.ldio-p0v5a1f6oz{backface-visibility:hidden;height:100%;position:relative;transform:translateZ(0) scale(.88);transform-origin:0 0;width:100%}.ldio-p0v5a1f6oz div{box-sizing:content-box}