@map-colonies/react-components 3.8.1 → 3.10.2

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 (231) hide show
  1. package/.env +1 -0
  2. package/.storybook/main.js +2 -5
  3. package/CHANGELOG.md +54 -0
  4. package/dist/assets/img/dragIcon.png +0 -0
  5. package/dist/assets/img/dragIconLight.png +0 -0
  6. package/dist/assets/img/glyphicons_067_cleaning.png +0 -0
  7. package/dist/assets/img/glyphicons_094_vector_path_square.png +0 -0
  8. package/dist/assets/img/glyphicons_095_vector_path_circle.png +0 -0
  9. package/dist/assets/img/glyphicons_096_vector_path_polygon.png +0 -0
  10. package/dist/assets/img/glyphicons_097_vector_path_line.png +0 -0
  11. package/dist/assets/img/glyphicons_242_google_maps.png +0 -0
  12. package/dist/assets/img/map-marker.gif +0 -0
  13. package/dist/autocomplete/autocomplete.css +25 -0
  14. package/dist/autocomplete/autocomplete.d.ts +33 -0
  15. package/dist/autocomplete/autocomplete.js +480 -0
  16. package/dist/autocomplete/index.d.ts +1 -0
  17. package/dist/autocomplete/index.js +5 -0
  18. package/dist/box/box.d.ts +3 -0
  19. package/dist/box/box.js +35 -0
  20. package/dist/box/index.d.ts +1 -0
  21. package/dist/box/index.js +5 -0
  22. package/dist/cesium-map/data-sources/custom.data-source.d.ts +5 -0
  23. package/dist/cesium-map/data-sources/custom.data-source.js +23 -0
  24. package/dist/cesium-map/data-sources/drawings.data-source.d.ts +34 -0
  25. package/dist/cesium-map/data-sources/drawings.data-source.js +187 -0
  26. package/dist/cesium-map/data-sources/index.d.ts +2 -0
  27. package/dist/cesium-map/data-sources/index.js +14 -0
  28. package/dist/cesium-map/entities/entity.d.ts +5 -0
  29. package/dist/cesium-map/entities/entity.description.d.ts +6 -0
  30. package/dist/cesium-map/entities/entity.description.js +27 -0
  31. package/dist/cesium-map/entities/entity.js +23 -0
  32. package/dist/cesium-map/entities/graphics/polygon.graphics.d.ts +5 -0
  33. package/dist/cesium-map/entities/graphics/polygon.graphics.js +23 -0
  34. package/dist/cesium-map/entities/graphics/polyline.graphics.d.ts +5 -0
  35. package/dist/cesium-map/entities/graphics/polyline.graphics.js +23 -0
  36. package/dist/cesium-map/entities/graphics/rectangle.graphics.d.ts +5 -0
  37. package/dist/cesium-map/entities/graphics/rectangle.graphics.js +23 -0
  38. package/dist/cesium-map/entities/index.d.ts +4 -0
  39. package/dist/cesium-map/entities/index.js +16 -0
  40. package/dist/cesium-map/index.d.ts +7 -0
  41. package/dist/cesium-map/index.js +19 -0
  42. package/dist/cesium-map/layers/3d.tileset.d.ts +7 -0
  43. package/dist/cesium-map/layers/3d.tileset.js +39 -0
  44. package/dist/cesium-map/layers/3d.tileset.update.d.ts +1 -0
  45. package/dist/cesium-map/layers/3d.tileset.update.js +5 -0
  46. package/dist/cesium-map/layers/geojson.layer.d.ts +5 -0
  47. package/dist/cesium-map/layers/geojson.layer.js +23 -0
  48. package/dist/cesium-map/layers/imagery.layer.d.ts +6 -0
  49. package/dist/cesium-map/layers/imagery.layer.js +64 -0
  50. package/dist/cesium-map/layers/index.d.ts +7 -0
  51. package/dist/cesium-map/layers/index.js +19 -0
  52. package/dist/cesium-map/layers/osm.layer.d.ts +9 -0
  53. package/dist/cesium-map/layers/osm.layer.js +36 -0
  54. package/dist/cesium-map/layers/wms.layer.d.ts +9 -0
  55. package/dist/cesium-map/layers/wms.layer.js +36 -0
  56. package/dist/cesium-map/layers/wmts.layer.d.ts +9 -0
  57. package/dist/cesium-map/layers/wmts.layer.js +36 -0
  58. package/dist/cesium-map/layers/xyz.layer.d.ts +9 -0
  59. package/dist/cesium-map/layers/xyz.layer.js +36 -0
  60. package/dist/cesium-map/layers-manager.d.ts +47 -0
  61. package/dist/cesium-map/layers-manager.js +228 -0
  62. package/dist/cesium-map/map.css +54 -0
  63. package/dist/cesium-map/map.d.ts +46 -0
  64. package/dist/cesium-map/map.js +273 -0
  65. package/dist/cesium-map/map.types.d.ts +8 -0
  66. package/dist/cesium-map/map.types.js +12 -0
  67. package/dist/cesium-map/proxied.types.d.ts +19 -0
  68. package/dist/cesium-map/proxied.types.js +89 -0
  69. package/dist/cesium-map/settings/base-maps.css +37 -0
  70. package/dist/cesium-map/settings/base-maps.d.ts +7 -0
  71. package/dist/cesium-map/settings/base-maps.js +78 -0
  72. package/dist/cesium-map/settings/scene-modes.css +19 -0
  73. package/dist/cesium-map/settings/scene-modes.d.ts +7 -0
  74. package/dist/cesium-map/settings/scene-modes.js +65 -0
  75. package/dist/cesium-map/settings/settings.css +49 -0
  76. package/dist/cesium-map/settings/settings.d.ts +23 -0
  77. package/dist/cesium-map/settings/settings.js +79 -0
  78. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.d.ts +3 -0
  79. package/dist/cesium-map/terrain-providers/custom/dummy-quantized-mesh-tile.js +245 -0
  80. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.d.ts +9 -0
  81. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-decoder.js +202 -0
  82. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.d.ts +50 -0
  83. package/dist/cesium-map/terrain-providers/custom/quantized-mesh-terrain-provider.js +136 -0
  84. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.d.ts +2 -0
  85. package/dist/cesium-map/tools/cesium/primitives-conversions.cesium.js +38 -0
  86. package/dist/cesium-map/tools/coordinates-tracker.tool.css +11 -0
  87. package/dist/cesium-map/tools/coordinates-tracker.tool.d.ts +7 -0
  88. package/dist/cesium-map/tools/coordinates-tracker.tool.js +78 -0
  89. package/dist/cesium-map/tools/draw/drawHelper.css +101 -0
  90. package/dist/cesium-map/tools/draw/drawHelper.d.ts +28 -0
  91. package/dist/cesium-map/tools/draw/drawHelper.js +1694 -0
  92. package/dist/cesium-map/tools/geojson/geojson-to-primitive.d.ts +4 -0
  93. package/dist/cesium-map/tools/geojson/geojson-to-primitive.js +41 -0
  94. package/dist/cesium-map/tools/geojson/index.d.ts +2 -0
  95. package/dist/cesium-map/tools/geojson/index.js +14 -0
  96. package/dist/cesium-map/tools/geojson/point.geojson.d.ts +3 -0
  97. package/dist/cesium-map/tools/geojson/point.geojson.js +21 -0
  98. package/dist/cesium-map/tools/geojson/polygon.geojson.d.ts +3 -0
  99. package/dist/cesium-map/tools/geojson/polygon.geojson.js +24 -0
  100. package/dist/cesium-map/tools/geojson/rectangle.geojson.d.ts +3 -0
  101. package/dist/cesium-map/tools/geojson/rectangle.geojson.js +44 -0
  102. package/dist/cesium-map/tools/inspector.tool.d.ts +4 -0
  103. package/dist/cesium-map/tools/inspector.tool.js +33 -0
  104. package/dist/cesium-map/tools/scale-tracker.tool.css +16 -0
  105. package/dist/cesium-map/tools/scale-tracker.tool.d.ts +8 -0
  106. package/dist/cesium-map/tools/scale-tracker.tool.js +158 -0
  107. package/dist/cesium-map/tools/terranian-height.tool.d.ts +4 -0
  108. package/dist/cesium-map/tools/terranian-height.tool.js +113 -0
  109. package/dist/cssbaseline/cssbaseline.d.ts +5 -0
  110. package/dist/cssbaseline/cssbaseline.js +41 -0
  111. package/dist/cssbaseline/index.d.ts +1 -0
  112. package/dist/cssbaseline/index.js +6 -0
  113. package/dist/date-picker/date-picker.css +9 -0
  114. package/dist/date-picker/date-picker.d.ts +14 -0
  115. package/dist/date-picker/date-picker.js +78 -0
  116. package/dist/date-picker/index.d.ts +1 -0
  117. package/dist/date-picker/index.js +13 -0
  118. package/dist/date-range-picker/date-range-picker.css +9 -0
  119. package/dist/date-range-picker/date-range-picker.d.ts +26 -0
  120. package/dist/date-range-picker/date-range-picker.form-control.css +3 -0
  121. package/dist/date-range-picker/date-range-picker.form-control.d.ts +28 -0
  122. package/dist/date-range-picker/date-range-picker.form-control.js +95 -0
  123. package/dist/date-range-picker/date-range-picker.js +104 -0
  124. package/dist/date-range-picker/index.d.ts +2 -0
  125. package/dist/date-range-picker/index.js +14 -0
  126. package/dist/file-picker/file-picker.css +62 -0
  127. package/dist/file-picker/file-picker.d.ts +276 -0
  128. package/dist/file-picker/file-picker.js +151 -0
  129. package/dist/file-picker/fs-map.json +1557 -0
  130. package/dist/file-picker/index.d.ts +2 -0
  131. package/dist/file-picker/index.js +14 -0
  132. package/dist/file-picker/localization.d.ts +11 -0
  133. package/dist/file-picker/localization.js +124 -0
  134. package/dist/index.d.ts +13 -0
  135. package/dist/index.js +23 -16
  136. package/dist/map-filter-container/container-map.css +5 -0
  137. package/dist/map-filter-container/container-map.d.ts +11 -0
  138. package/dist/map-filter-container/container-map.js +31 -0
  139. package/dist/map-filter-container/index.d.ts +1 -0
  140. package/dist/map-filter-container/index.js +13 -0
  141. package/dist/map-filter-container/map-filter-container.d.ts +9 -0
  142. package/dist/map-filter-container/map-filter-container.js +78 -0
  143. package/dist/map-filter-container/polygon-selection-ui.d.ts +12 -0
  144. package/dist/map-filter-container/polygon-selection-ui.js +62 -0
  145. package/dist/models/defaults.d.ts +28 -0
  146. package/dist/models/defaults.js +32 -0
  147. package/dist/models/enums.d.ts +14 -0
  148. package/dist/models/enums.js +20 -0
  149. package/dist/models/index.d.ts +1 -0
  150. package/dist/models/index.js +13 -0
  151. package/dist/ol-map/feature.d.ts +6 -0
  152. package/dist/ol-map/feature.js +20 -0
  153. package/dist/ol-map/index.d.ts +6 -0
  154. package/dist/ol-map/index.js +18 -0
  155. package/dist/ol-map/interactions/draw.d.ts +8 -0
  156. package/dist/ol-map/interactions/draw.js +44 -0
  157. package/dist/ol-map/interactions/index.d.ts +1 -0
  158. package/dist/ol-map/interactions/index.js +13 -0
  159. package/dist/ol-map/layers/index.d.ts +3 -0
  160. package/dist/ol-map/layers/index.js +15 -0
  161. package/dist/ol-map/layers/tile-layer.d.ts +9 -0
  162. package/dist/ol-map/layers/tile-layer.js +48 -0
  163. package/dist/ol-map/layers/vector-layer.d.ts +4 -0
  164. package/dist/ol-map/layers/vector-layer.js +48 -0
  165. package/dist/ol-map/layers/vector-tile-layer.d.ts +10 -0
  166. package/dist/ol-map/layers/vector-tile-layer.js +66 -0
  167. package/dist/ol-map/map.css +17 -0
  168. package/dist/ol-map/map.d.ts +14 -0
  169. package/dist/ol-map/map.js +117 -0
  170. package/dist/ol-map/source/index.d.ts +6 -0
  171. package/dist/ol-map/source/index.js +18 -0
  172. package/dist/ol-map/source/mvt.d.ts +11 -0
  173. package/dist/ol-map/source/mvt.js +37 -0
  174. package/dist/ol-map/source/osm.d.ts +2 -0
  175. package/dist/ol-map/source/osm.js +14 -0
  176. package/dist/ol-map/source/vector-source.d.ts +4 -0
  177. package/dist/ol-map/source/vector-source.js +45 -0
  178. package/dist/ol-map/source/wms.d.ts +17 -0
  179. package/dist/ol-map/source/wms.js +30 -0
  180. package/dist/ol-map/source/wmts.d.ts +21 -0
  181. package/dist/ol-map/source/wmts.js +59 -0
  182. package/dist/ol-map/source/xyz.d.ts +12 -0
  183. package/dist/ol-map/source/xyz.js +27 -0
  184. package/dist/ol-map/style.d.ts +4 -0
  185. package/dist/ol-map/style.js +22 -0
  186. package/dist/popover/index.d.ts +1 -0
  187. package/dist/popover/index.js +5 -0
  188. package/dist/popover/popover.d.ts +3 -0
  189. package/dist/popover/popover.js +35 -0
  190. package/dist/smart-table/__mock-data__/smartTableMocks.d.ts +7 -0
  191. package/dist/smart-table/__mock-data__/smartTableMocks.js +17 -0
  192. package/dist/smart-table/index.d.ts +2 -0
  193. package/dist/smart-table/index.js +14 -0
  194. package/dist/smart-table/smart-table-head.d.ts +11 -0
  195. package/dist/smart-table/smart-table-head.js +22 -0
  196. package/dist/smart-table/smart-table-row.d.ts +12 -0
  197. package/dist/smart-table/smart-table-row.js +46 -0
  198. package/dist/smart-table/smart-table-types.d.ts +9 -0
  199. package/dist/smart-table/smart-table-types.js +2 -0
  200. package/dist/smart-table/smart-table.d.ts +17 -0
  201. package/dist/smart-table/smart-table.js +51 -0
  202. package/dist/theme/index.d.ts +1 -0
  203. package/dist/theme/index.js +13 -0
  204. package/dist/theme/theme.d.ts +8 -0
  205. package/dist/theme/theme.js +124 -0
  206. package/dist/utils/map.d.ts +3 -0
  207. package/dist/utils/map.js +21 -0
  208. package/dist/utils/projections.d.ts +6 -0
  209. package/dist/utils/projections.js +10 -0
  210. package/dist/utils/story.d.ts +12 -0
  211. package/dist/utils/story.js +2 -0
  212. package/package.json +103 -100
  213. package/public/assets/img/map-marker.gif +0 -0
  214. package/src/lib/cesium-map/map.tsx +22 -12
  215. package/src/lib/cesium-map/terrain-providers/terrain-provider-heights-tool.stories.tsx +155 -0
  216. package/src/lib/cesium-map/terrain-providers/terrain-provider.stories.tsx +5 -3
  217. package/src/lib/cesium-map/tools/coordinates-tracker.tool.tsx +1 -1
  218. package/src/lib/cesium-map/tools/inspector.tool.tsx +15 -0
  219. package/src/lib/cesium-map/tools/terranian-height.tool.tsx +167 -0
  220. package/src/lib/date-range-picker/{stories/DateRangePicker.stories.tsx → date-range-picker.stories.tsx} +5 -5
  221. package/src/lib/file-picker/file-picker.css +62 -0
  222. package/src/lib/file-picker/file-picker.stories.tsx +447 -0
  223. package/src/lib/file-picker/file-picker.tsx +180 -0
  224. package/src/lib/file-picker/fs-map.json +1557 -0
  225. package/src/lib/file-picker/index.ts +2 -0
  226. package/src/lib/file-picker/localization.ts +164 -0
  227. package/src/lib/index.ts +1 -0
  228. package/src/lib/models/enums.ts +1 -0
  229. package/src/lib/smart-table/smart-table-row.spec.tsx +1 -1
  230. package/tsbuildconfig.json +2 -2
  231. package/tsconfig.json +2 -1
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ /* eslint-disable @typescript-eslint/no-explicit-any */
18
+ /* eslint-disable @typescript-eslint/no-unsafe-call */
19
+ /* eslint-disable @typescript-eslint/no-unsafe-return */
20
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
21
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
22
+ /* eslint-disable @typescript-eslint/no-magic-numbers */
23
+ var cesium_1 = require("cesium");
24
+ var quantized_mesh_decoder_1 = __importDefault(require("@here/quantized-mesh-decoder"));
25
+ var dummy_quantized_mesh_tile_1 = __importDefault(require("./dummy-quantized-mesh-tile"));
26
+ var TILE_IMAGE_WIDTH = 65;
27
+ var QuantizedMeshTerrainProvider /*extends TerrainProvider*/ = /** @class */ (function () {
28
+ function QuantizedMeshTerrainProvider(options) {
29
+ var _a;
30
+ // super();
31
+ this.ready = false;
32
+ this.dummyTile = quantized_mesh_decoder_1.default(dummy_quantized_mesh_tile_1.default);
33
+ this.tilingScheme = (_a = options.tilingScheme) !== null && _a !== void 0 ? _a : new cesium_1.WebMercatorTilingScheme();
34
+ if (options.getUrl === undefined) {
35
+ throw new Error('getUrl option is missing');
36
+ }
37
+ if (options.credit !== undefined) {
38
+ this.credits = [new cesium_1.Credit(options.credit)];
39
+ }
40
+ this.getUrl = options.getUrl;
41
+ this.readyPromise = Promise.resolve(true);
42
+ this.ready = true;
43
+ }
44
+ QuantizedMeshTerrainProvider.prototype.requestTileGeometry = function (x, y, level) {
45
+ var _this = this;
46
+ var url = this.getUrl(x, y, level);
47
+ return window
48
+ .fetch(url)
49
+ .then(function (res) {
50
+ if (res.status !== 200) {
51
+ return _this.generateDummyTile(x, y, level);
52
+ }
53
+ return _this.decodeResponse(res, x, y, level);
54
+ })
55
+ .then(function (decodedTile) {
56
+ return _this.createQuantizedMeshData(decodedTile, x, y, level);
57
+ })
58
+ .catch(function (err) {
59
+ console.error(err);
60
+ });
61
+ };
62
+ QuantizedMeshTerrainProvider.prototype.getTileDataAvailable = function (x, y, level) {
63
+ return true;
64
+ };
65
+ QuantizedMeshTerrainProvider.prototype.getLevelMaximumGeometricError = function (level) {
66
+ var levelZeroMaximumGeometricError = cesium_1.TerrainProvider.getEstimatedLevelZeroGeometricErrorForAHeightmap(this.tilingScheme.ellipsoid, TILE_IMAGE_WIDTH, this.tilingScheme.getNumberOfXTilesAtLevel(0));
67
+ return levelZeroMaximumGeometricError / (1 << level);
68
+ };
69
+ QuantizedMeshTerrainProvider.prototype.generateDummyTileHeader = function (x, y, level) {
70
+ var tileRect = this.tilingScheme.tileXYToRectangle(x, y, level);
71
+ var tileNativeRect = this.tilingScheme.tileXYToNativeRectangle(x, y, level);
72
+ var tileCenter = cesium_1.Cartographic.toCartesian(cesium_1.Rectangle.center(tileRect));
73
+ var horizonOcclusionPoint = cesium_1.Ellipsoid.WGS84.transformPositionToScaledSpace(tileCenter);
74
+ return {
75
+ centerX: tileCenter.x,
76
+ centerY: tileCenter.y,
77
+ centerZ: tileCenter.z,
78
+ minHeight: 0,
79
+ maxHeight: 0,
80
+ boundingSphereCenterX: tileCenter.x,
81
+ boundingSphereCenterY: tileCenter.y,
82
+ boundingSphereCenterZ: tileCenter.z,
83
+ boundingSphereRadius: tileNativeRect.height,
84
+ horizonOcclusionPointX: horizonOcclusionPoint.x,
85
+ horizonOcclusionPointY: horizonOcclusionPoint.y,
86
+ horizonOcclusionPointZ: horizonOcclusionPoint.z,
87
+ };
88
+ };
89
+ QuantizedMeshTerrainProvider.prototype.createQuantizedMeshData = function (decodedTile, x, y, level) {
90
+ var tileRect = this.tilingScheme.tileXYToRectangle(x, y, level);
91
+ var boundingSphereCenter = new cesium_1.Cartesian3(decodedTile.header.boundingSphereCenterX, decodedTile.header.boundingSphereCenterY, decodedTile.header.boundingSphereCenterZ);
92
+ var boundingSphere = new cesium_1.BoundingSphere(boundingSphereCenter, decodedTile.header.boundingSphereRadius);
93
+ var horizonOcclusionPoint = new cesium_1.Cartesian3(decodedTile.header.horizonOcclusionPointX, decodedTile.header.horizonOcclusionPointY, decodedTile.header.horizonOcclusionPointZ);
94
+ var orientedBoundingBox;
95
+ if (tileRect.width < cesium_1.Math.PI_OVER_TWO + cesium_1.Math.EPSILON5) {
96
+ orientedBoundingBox = cesium_1.OrientedBoundingBox.fromRectangle(tileRect, decodedTile.header.minHeight, decodedTile.header.maxHeight);
97
+ }
98
+ return new cesium_1.QuantizedMeshTerrainData({
99
+ minimumHeight: decodedTile.header.minHeight,
100
+ maximumHeight: decodedTile.header.maxHeight,
101
+ quantizedVertices: decodedTile.vertexData,
102
+ indices: decodedTile.triangleIndices,
103
+ boundingSphere: boundingSphere,
104
+ orientedBoundingBox: orientedBoundingBox,
105
+ horizonOcclusionPoint: horizonOcclusionPoint,
106
+ westIndices: decodedTile.westIndices,
107
+ southIndices: decodedTile.southIndices,
108
+ eastIndices: decodedTile.eastIndices,
109
+ northIndices: decodedTile.northIndices,
110
+ westSkirtHeight: 100,
111
+ southSkirtHeight: 100,
112
+ eastSkirtHeight: 100,
113
+ northSkirtHeight: 100,
114
+ childTileMask: 15,
115
+ credits: this.credits,
116
+ });
117
+ };
118
+ QuantizedMeshTerrainProvider.prototype.generateDummyTile = function (x, y, level) {
119
+ return __assign(__assign({}, this.dummyTile), this.generateDummyTileHeader(x, y, level));
120
+ };
121
+ QuantizedMeshTerrainProvider.prototype.decodeResponse = function (res, x, y, level) {
122
+ var _this = this;
123
+ return res
124
+ .arrayBuffer()
125
+ .then(function (buffer) {
126
+ return quantized_mesh_decoder_1.default(buffer);
127
+ })
128
+ .catch(function (err) {
129
+ console.error("Decoding failed on tile " + _this.getUrl(x, y, level));
130
+ console.error(err);
131
+ return _this.generateDummyTile(x, y, level);
132
+ });
133
+ };
134
+ return QuantizedMeshTerrainProvider;
135
+ }());
136
+ exports.default = QuantizedMeshTerrainProvider;
@@ -0,0 +1,2 @@
1
+ import { Rectangle, Cartesian3 } from 'cesium';
2
+ export declare const rectangleToPositions: (positions: Rectangle) => Cartesian3[];
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ var __importDefault = (this && this.__importDefault) || function (mod) {
22
+ return (mod && mod.__esModule) ? mod : { "default": mod };
23
+ };
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ exports.rectangleToPositions = void 0;
26
+ var cesium_1 = require("cesium");
27
+ var turf = __importStar(require("@turf/helpers"));
28
+ var bbox_1 = __importDefault(require("@turf/bbox"));
29
+ var bbox_polygon_1 = __importDefault(require("@turf/bbox-polygon"));
30
+ var rectangleToPositions = function (positions) {
31
+ var line = turf.lineString([
32
+ [positions.west, positions.south],
33
+ [positions.east, positions.north],
34
+ ]);
35
+ var polygon = bbox_polygon_1.default(bbox_1.default(line));
36
+ return polygon.geometry.coordinates[0].map(function (coord) { return cesium_1.Cartesian3.fromRadiansArray(coord)[0]; });
37
+ };
38
+ exports.rectangleToPositions = rectangleToPositions;
@@ -0,0 +1,11 @@
1
+ .trackerPosition {
2
+ background-color: var(--mdc-theme-surface);
3
+ z-index: 2000;
4
+ padding: 2px 2px;
5
+ border-radius: 2px;
6
+ font-size: 12px;
7
+ height: 24px;
8
+ text-align: center;
9
+ line-height: 20px;
10
+ white-space: nowrap;
11
+ }
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import './coordinates-tracker.tool.css';
3
+ import { Proj } from '../../utils/projections';
4
+ export interface RCoordinatesTrackerToolProps {
5
+ projection?: Proj;
6
+ }
7
+ export declare const CoordinatesTrackerTool: React.FC<RCoordinatesTrackerToolProps>;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5
+ }) : (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ o[k2] = m[k];
8
+ }));
9
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
11
+ }) : function(o, v) {
12
+ o["default"] = v;
13
+ });
14
+ var __importStar = (this && this.__importStar) || function (mod) {
15
+ if (mod && mod.__esModule) return mod;
16
+ var result = {};
17
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18
+ __setModuleDefault(result, mod);
19
+ return result;
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ exports.CoordinatesTrackerTool = void 0;
23
+ var react_1 = __importStar(require("react"));
24
+ var cesium_1 = require("cesium");
25
+ var map_1 = require("../map");
26
+ require("./coordinates-tracker.tool.css");
27
+ var projections_1 = require("../../utils/projections");
28
+ var CoordinatesTrackerTool = function (props) {
29
+ var mapViewer = map_1.useCesiumMap();
30
+ var ref = react_1.useRef(null);
31
+ var _a = react_1.useState({ x: 0, y: 0 }), position = _a[0], setPosition = _a[1];
32
+ react_1.useEffect(function () {
33
+ var setFromEvent = function (e) {
34
+ return setPosition({ x: e.clientX, y: e.clientY });
35
+ };
36
+ mapViewer.scene.canvas.addEventListener('mousemove', setFromEvent);
37
+ return function () {
38
+ try {
39
+ mapViewer.scene.canvas.removeEventListener('mousemove', setFromEvent);
40
+ }
41
+ catch (e) {
42
+ console.log('CESIUM canvas "mousemove" remove listener failed', e);
43
+ }
44
+ };
45
+ }, [ref, mapViewer]);
46
+ react_1.useEffect(function () {
47
+ var ellipsoid = mapViewer.scene.globe.ellipsoid;
48
+ // Mouse over the globe to see the cartographic position
49
+ var cartesian = mapViewer.camera.pickEllipsoid(new cesium_1.Cartesian3(position.x, position.y), ellipsoid);
50
+ if (cartesian) {
51
+ var cartographic = ellipsoid.cartesianToCartographic(cartesian);
52
+ if (ref.current) {
53
+ var coordinatesText = '';
54
+ switch (props.projection) {
55
+ case projections_1.Proj.WEB_MERCATOR: {
56
+ var wmProjection = new cesium_1.WebMercatorProjection(ellipsoid);
57
+ var res = wmProjection.project(cartographic);
58
+ coordinatesText = "Mercator: " + res.y.toFixed(projections_1.COORDINATES_MERCATOR_FRACTION_DIGITS) + "m, " + res.x.toFixed(projections_1.COORDINATES_MERCATOR_FRACTION_DIGITS) + "m";
59
+ ref.current.style.width = '220px';
60
+ break;
61
+ }
62
+ case projections_1.Proj.WGS84: {
63
+ var longitudeString = cesium_1.Math.toDegrees(cartographic.longitude).toFixed(projections_1.COORDINATES_WGS_FRACTION_DIGITS);
64
+ var latitudeString = cesium_1.Math.toDegrees(cartographic.latitude).toFixed(projections_1.COORDINATES_WGS_FRACTION_DIGITS);
65
+ coordinatesText = "WGS84: " + latitudeString + "\u00B0N " + longitudeString + "\u00B0E";
66
+ ref.current.style.width = '200px';
67
+ break;
68
+ }
69
+ default:
70
+ break;
71
+ }
72
+ ref.current.innerHTML = coordinatesText;
73
+ }
74
+ }
75
+ }, [position, ref, mapViewer, props.projection]);
76
+ return react_1.default.createElement("div", { className: "trackerPosition", ref: ref });
77
+ };
78
+ exports.CoordinatesTrackerTool = CoordinatesTrackerTool;
@@ -0,0 +1,101 @@
1
+ /*
2
+ initial twipsy code taken from bootstrap
3
+ */
4
+ .twipsy {
5
+ display: block;
6
+ position: absolute;
7
+ visibility: visible;
8
+ max-width: 200px;
9
+ min-width: 100px;
10
+ padding: 5px;
11
+ font-size: 11px;
12
+ z-index: 1000;
13
+ opacity: 0.8;
14
+ -khtml-opacity: 0.8;
15
+ -moz-opacity: 0.8;
16
+ filter: alpha(opacity=80);
17
+ }
18
+ .twipsy.left .twipsy-arrow {
19
+ top: 50%;
20
+ right: 0;
21
+ margin-top: -5px;
22
+ border-top: 5px solid transparent;
23
+ border-bottom: 5px solid transparent;
24
+ border-left: 5px solid #000000;
25
+ }
26
+ .twipsy.right .twipsy-arrow {
27
+ top: 50%;
28
+ left: 0;
29
+ margin-top: -5px;
30
+ border-top: 5px solid transparent;
31
+ border-bottom: 5px solid transparent;
32
+ border-right: 5px solid #000000;
33
+ }
34
+ .twipsy-inner {
35
+ padding: 3px 8px;
36
+ background-color: #000000;
37
+ color: white;
38
+ text-align: center;
39
+ max-width: 200px;
40
+ text-decoration: none;
41
+ -webkit-border-radius: 4px;
42
+ -moz-border-radius: 4px;
43
+ border-radius: 4px;
44
+ }
45
+ .twipsy-arrow {
46
+ position: absolute;
47
+ width: 0;
48
+ height: 0;
49
+ }
50
+
51
+ /*
52
+ css rules for the draw helper components
53
+ */
54
+
55
+ .toolbar {
56
+ margin: 0px;
57
+ padding: 0px;
58
+ background: white;
59
+ }
60
+
61
+ .toolbar > .button {
62
+ margin: 5px;
63
+ padding: 5px;
64
+ border: 1px solid #eee;
65
+ cursor: pointer;
66
+ }
67
+
68
+ .toolbar > .button:hover {
69
+ background: #eee;
70
+ }
71
+
72
+ /*
73
+ css rules for the infowindow
74
+ */
75
+
76
+ .infoWindow {
77
+ position: absolute;
78
+ min-width: 100px;
79
+ max-width: 300px;
80
+ }
81
+ .infoWindow #frame {
82
+ padding: 10px;
83
+ border: 1px solid black;
84
+ background: white;
85
+ }
86
+ .infoWindow #close {
87
+ float: right;
88
+ margin: 5px 2px;
89
+ font-size: small;
90
+ color: gray;
91
+ cursor: pointer;
92
+ }
93
+ .infoWindow #arrow {
94
+ position: absolute;
95
+ bottom: -8px;
96
+ left: 50%;
97
+ margin-left: -10px;
98
+ border-right: 10px solid transparent;
99
+ border-left: 10px solid transparent;
100
+ border-top: 10px solid white;
101
+ }
@@ -0,0 +1,28 @@
1
+ import * as Cesium from 'cesium';
2
+ import './drawHelper.css';
3
+ declare var DrawHelper: {
4
+ (cesiumWidget: any, materialClr?: Cesium.Color, drawingVertexClr?: Cesium.Color): void;
5
+ ExtentPrimitive: {
6
+ (options: any): void;
7
+ prototype: any;
8
+ };
9
+ PolygonPrimitive: {
10
+ (options: any): void;
11
+ prototype: any;
12
+ };
13
+ CirclePrimitive: {
14
+ (options: any): void;
15
+ prototype: any;
16
+ };
17
+ EllipsePrimitive: {
18
+ (options: any): void;
19
+ prototype: any;
20
+ };
21
+ PolylinePrimitive: {
22
+ (options: any): void;
23
+ prototype: any;
24
+ };
25
+ BillboardGroup(drawHelper: any, options: any): void;
26
+ DrawHelperWidget: (drawHelper: any, options: any) => void;
27
+ };
28
+ export { DrawHelper };