mirror of https://github.com/CesiumGS/cesium.git
61 lines
1.8 KiB
JavaScript
61 lines
1.8 KiB
JavaScript
import { test, expect } from "./test.js";
|
|
|
|
test("Shows cartographic position on mouse over", async ({ cesiumPage }) => {
|
|
await cesiumPage.goto();
|
|
|
|
await cesiumPage.page.evaluate(() => {
|
|
const viewer = new Cesium.Viewer("cesiumContainer", {
|
|
selectionIndicator: false,
|
|
infoBox: false,
|
|
});
|
|
|
|
const scene = viewer.scene;
|
|
|
|
const entity = viewer.entities.add({
|
|
label: {
|
|
show: false,
|
|
showBackground: true,
|
|
font: "14px monospace",
|
|
horizontalOrigin: Cesium.HorizontalOrigin.LEFT,
|
|
verticalOrigin: Cesium.VerticalOrigin.TOP,
|
|
pixelOffset: new Cesium.Cartesian2(15, 0),
|
|
},
|
|
});
|
|
|
|
const handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
|
|
handler.setInputAction(function (movement) {
|
|
const cartesian = viewer.camera.pickEllipsoid(
|
|
movement.endPosition,
|
|
scene.globe.ellipsoid,
|
|
);
|
|
if (cartesian) {
|
|
const cartographic = Cesium.Cartographic.fromCartesian(cartesian);
|
|
const longitudeString = Cesium.Math.toDegrees(
|
|
cartographic.longitude,
|
|
).toFixed(2);
|
|
const latitudeString = Cesium.Math.toDegrees(
|
|
cartographic.latitude,
|
|
).toFixed(2);
|
|
|
|
entity.position = cartesian;
|
|
entity.label.show = true;
|
|
entity.label.text =
|
|
`Lon: ${` ${longitudeString}`.slice(-7)}\u00B0` +
|
|
`\nLat: ${` ${latitudeString}`.slice(-7)}\u00B0`;
|
|
} else {
|
|
entity.label.show = false;
|
|
}
|
|
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
|
|
});
|
|
|
|
await cesiumPage.page.clock.runFor(1000);
|
|
await cesiumPage.page.waitForLoadState("networkidle");
|
|
|
|
const { width, height } = cesiumPage.page.viewportSize();
|
|
await cesiumPage.page.mouse.move(width / 2, height / 2);
|
|
|
|
await cesiumPage.page.clock.runFor(1000);
|
|
|
|
await expect(cesiumPage.page).toHaveScreenshot();
|
|
});
|