Skip to content

Allow for cesium 3dtilesets and entities to be used as reset views #16

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions dist/CesiumNavigation.umd.js

Large diffs are not rendered by default.

30 changes: 29 additions & 1 deletion dist/viewModels/ResetViewNavigationControl.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import {
Rectangle,
Cartographic,
Math as CesiumMath,
Cesium3DTileset,
Entity
} from "cesium";
import svgReset from "../svgPaths/svgReset";
import NavigationControl from "./NavigationControl";
Expand Down Expand Up @@ -125,7 +127,33 @@ ResetViewNavigationControl.prototype.resetView = function () {
"Cesium-navigation/ResetViewNavigationControl: options.defaultResetView Cesium rectangle is invalid!"
);
}
}
} else if (
this.terria.options.defaultResetView &&
this.terria.options.defaultResetView.isCesium3DTileset
) {
try {
this.terria.zoomTo(
this.terria.options.defaultResetView,
);
} catch (e) {
console.log(
"Cesium-navigation/ResetViewNavigationControl: options.defaultResetView Cesium tileset is invalid!"
);
}
} else if (
this.terria.options.defaultResetView &&
this.terria.options.defaultResetView instanceof Entity
) {
try {
this.terria.zoomTo(
this.terria.options.defaultResetView,
);
} catch (e) {
console.log(
"Cesium-navigation/ResetViewNavigationControl: options.defaultResetView Entity is invalid!"
);
}
}
} else if (typeof camera.flyHome === "function") {
camera.flyHome(1);
} else {
Expand Down
4 changes: 2 additions & 2 deletions lib/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { Rectangle, Viewer } from "cesium";
import { Cesium3DTile, Cesium3DTileset, Rectangle, Viewer } from "cesium";

declare module "cesium-navigation-es6" {
export interface NavigationOptions {
// 用于在使用重置导航重置地图视图时设置默认视图控制。接受的值是Cesium.Cartographic 和 Cesium.Rectangle.
defaultResetView?: Rectangle
defaultResetView?: Rectangle | Cesium3DTileset | Entity
// 用于启用或禁用罗盘。true是启用罗盘,false是禁用罗盘。默认值为true。如果将选项设置为false,则罗盘将不会添加到地图中。
enableCompass?: boolean
// 用于启用或禁用缩放控件。true是启用,false是禁用。默认值为true。如果将选项设置为false,则缩放控件将不会添加到地图中。
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@
"mini-css-extract-plugin": "^2.3.0",
"path-browserify": "^1.0.1",
"style-loader": "1.3.0",
"webpack": "^5.53.0",
"webpack": "^5.91.0",
"webpack-cli": "^4.8.0",
"webpack-dev-server": "^4.2.1"
}
Expand Down
4 changes: 2 additions & 2 deletions public/CesiumNavigation.umd.js

Large diffs are not rendered by default.

30 changes: 29 additions & 1 deletion src/viewModels/ResetViewNavigationControl.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ import {
Rectangle,
Cartographic,
Math as CesiumMath,
Cesium3DTileset,
Entity
} from "cesium";
import svgReset from "../svgPaths/svgReset";
import NavigationControl from "./NavigationControl";
Expand Down Expand Up @@ -125,7 +127,33 @@ ResetViewNavigationControl.prototype.resetView = function () {
"Cesium-navigation/ResetViewNavigationControl: options.defaultResetView Cesium rectangle is invalid!"
);
}
}
} else if (
this.terria.options.defaultResetView &&
this.terria.options.defaultResetView.isCesium3DTileset
) {
try {
this.terria.zoomTo(
this.terria.options.defaultResetView,
);
} catch (e) {
console.log(
"Cesium-navigation/ResetViewNavigationControl: options.defaultResetView Cesium tileset is invalid!"
);
}
} else if (
this.terria.options.defaultResetView &&
this.terria.options.defaultResetView instanceof Entity
) {
try {
this.terria.zoomTo(
this.terria.options.defaultResetView,
);
} catch (e) {
console.log(
"Cesium-navigation/ResetViewNavigationControl: options.defaultResetView Entity is invalid!"
);
}
}
} else if (typeof camera.flyHome === "function") {
camera.flyHome(1);
} else {
Expand Down