@map-colonies/react-components 3.15.0 → 3.15.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [3.15.1](https://github.com/MapColonies/shared-components/compare/@map-colonies/react-components@3.15.0...@map-colonies/react-components@3.15.1) (2023-05-28)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* zoom level in 2d mode ([#139](https://github.com/MapColonies/shared-components/issues/139)) ([48f7a85](https://github.com/MapColonies/shared-components/commit/48f7a8543f695a82b9042f9d2704b653443cc2ff))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [3.15.0](https://github.com/MapColonies/shared-components/compare/@map-colonies/react-components@3.14.0...@map-colonies/react-components@3.15.0) (2023-05-28)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -27,11 +27,12 @@ var map_types_1 = require("../map.types");
|
|
|
27
27
|
require("./zoom_level-tracker.tool.css");
|
|
28
28
|
/* eslint-disable @typescript-eslint/no-magic-numbers, @typescript-eslint/naming-convention, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unnecessary-type-assertion, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call */
|
|
29
29
|
var detectZoomLevel = function (distance, viewer) {
|
|
30
|
+
var _a;
|
|
30
31
|
var MAX_ZOOM_LEVEL = 19;
|
|
31
32
|
var tileProvider = lodash_1.get(viewer.scene.globe, '_surface.tileProvider');
|
|
32
33
|
var quadtree = tileProvider._quadtree;
|
|
33
34
|
var drawingBufferHeight = viewer.canvas.height;
|
|
34
|
-
var sseDenominator = lodash_1.get(viewer.camera.frustum, 'sseDenominator');
|
|
35
|
+
var sseDenominator = (_a = lodash_1.get(viewer.camera.frustum, 'sseDenominator')) !== null && _a !== void 0 ? _a : 1;
|
|
35
36
|
for (var level = 0; level <= MAX_ZOOM_LEVEL; level++) {
|
|
36
37
|
var maxGeometricError = tileProvider.getLevelMaximumGeometricError(level);
|
|
37
38
|
var error = (maxGeometricError * drawingBufferHeight) / (distance * sseDenominator);
|
|
@@ -103,13 +104,15 @@ var ZoomLevelTrackerTool = function (props) {
|
|
|
103
104
|
cameraHeight = 0;
|
|
104
105
|
break;
|
|
105
106
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
Math.abs(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
107
|
+
if (zoomLevelHeights.length > 0) {
|
|
108
|
+
var closestZoom = zoomLevelHeights.reduce(function (a, b) {
|
|
109
|
+
return Math.abs(b.height - cameraHeight) <
|
|
110
|
+
Math.abs(a.height - cameraHeight)
|
|
111
|
+
? b
|
|
112
|
+
: a;
|
|
113
|
+
});
|
|
114
|
+
setZoomLevel(closestZoom.level);
|
|
115
|
+
}
|
|
113
116
|
};
|
|
114
117
|
mapViewer.camera.moveEnd.addEventListener(calculateZoomLevel);
|
|
115
118
|
return function () {
|
|
@@ -123,7 +126,7 @@ var ZoomLevelTrackerTool = function (props) {
|
|
|
123
126
|
console.log('CESIUM camera "moveEnd"(from zoom tracker) remove listener failed', e);
|
|
124
127
|
}
|
|
125
128
|
};
|
|
126
|
-
}, [mapViewer]);
|
|
129
|
+
}, [mapViewer, zoomLevelHeights.length]);
|
|
127
130
|
return (react_1.default.createElement("div", { className: "zoomLevel" },
|
|
128
131
|
react_1.default.createElement("div", { className: "zoomLevelValue" }, zoomLevel),
|
|
129
132
|
react_1.default.createElement("div", { className: "zoomLevelLabel" }, (_a = lodash_1.get(props.locale, 'ZOOM_LABEL')) !== null && _a !== void 0 ? _a : 'zoom')));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@map-colonies/react-components",
|
|
3
|
-
"version": "3.15.
|
|
3
|
+
"version": "3.15.1",
|
|
4
4
|
"module": "dist/index.js",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -93,7 +93,7 @@
|
|
|
93
93
|
"jest-enzyme": "^7.1.2",
|
|
94
94
|
"react-test-renderer": "^16.13.1"
|
|
95
95
|
},
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "cb8b1ee909c0d1650e255d163b52ef6fcb436cba",
|
|
97
97
|
"jest": {
|
|
98
98
|
"coverageReporters": [
|
|
99
99
|
"text",
|
|
@@ -16,7 +16,7 @@ const detectZoomLevel = (distance: number, viewer: CesiumViewer) => {
|
|
|
16
16
|
const tileProvider = get(viewer.scene.globe, '_surface.tileProvider') as any;
|
|
17
17
|
const quadtree = tileProvider._quadtree;
|
|
18
18
|
const drawingBufferHeight = viewer.canvas.height;
|
|
19
|
-
const sseDenominator = get(viewer.camera.frustum, 'sseDenominator');
|
|
19
|
+
const sseDenominator = get(viewer.camera.frustum, 'sseDenominator') ?? 1;
|
|
20
20
|
|
|
21
21
|
for (let level = 0; level <= MAX_ZOOM_LEVEL; level++) {
|
|
22
22
|
const maxGeometricError = tileProvider.getLevelMaximumGeometricError(level);
|
|
@@ -104,14 +104,16 @@ export const ZoomLevelTrackerTool: React.FC<RZoomLevelTrackerToolProps> = (
|
|
|
104
104
|
break;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
Math.abs(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
107
|
+
if (zoomLevelHeights.length > 0) {
|
|
108
|
+
const closestZoom = zoomLevelHeights.reduce((a, b) => {
|
|
109
|
+
return Math.abs(b.height - cameraHeight) <
|
|
110
|
+
Math.abs(a.height - cameraHeight)
|
|
111
|
+
? b
|
|
112
|
+
: a;
|
|
113
|
+
});
|
|
113
114
|
|
|
114
|
-
|
|
115
|
+
setZoomLevel(closestZoom.level);
|
|
116
|
+
}
|
|
115
117
|
};
|
|
116
118
|
|
|
117
119
|
mapViewer.camera.moveEnd.addEventListener(calculateZoomLevel);
|
|
@@ -129,7 +131,7 @@ export const ZoomLevelTrackerTool: React.FC<RZoomLevelTrackerToolProps> = (
|
|
|
129
131
|
);
|
|
130
132
|
}
|
|
131
133
|
};
|
|
132
|
-
}, [mapViewer]);
|
|
134
|
+
}, [mapViewer, zoomLevelHeights.length]);
|
|
133
135
|
|
|
134
136
|
return (
|
|
135
137
|
<div className="zoomLevel">
|