Muszę wiedzieć, jakie jest aktualne centrum mapy cezu.Pobierz centrum w Cesium Map
Próbowałem użyć viewer.camera.position
, ale zawsze daje taką samą wartość z (x: 16921255.101297915, y: 5578093.302269477, z: 12756274) i nie jestem pewien wartości x i y. Czy są w metrach?
Wielkie dzięki!
EDIT: Rozwiązanie
Z wszelką pomoc dostałem Ja to razem (dzięki!):
getPosition(){
if (viewer.scene.mode == 3) {
var windowPosition = new Cesium.Cartesian2(viewer.container.clientWidth/2, viewer.container.clientHeight/2);
var pickRay = viewer.scene.camera.getPickRay(windowPosition);
var pickPosition = viewer.scene.globe.pick(pickRay, viewer.scene);
var pickPositionCartographic = viewer.scene.globe.ellipsoid.cartesianToCartographic(pickPosition);
console.log(pickPositionCartographic.longitude * (180/Math.PI));
console.log(pickPositionCartographic.latitude * (180/Math.PI));
} else if (viewer.scene.mode == 2) {
var camPos = viewer.camera.positionCartographic;
console.log(camPos.longitude * (180/Math.PI));
console.log(camPos.latitude * (180/Math.PI));
}
};
Funkcja ta daje długość/szerokość współrzędne w stopniach.
Tak, wartości kartezjańskie są w metrach. Oś X wskazuje na środek Ziemi w kierunku Lat 0, Lon 0, Alt 0. Oś Z wskazuje od środka w kierunku bieguna północnego. Oś Y tworzy prawy układ współrzędnych z pozostałymi dwoma. Musisz użyć 'Ellipsoid.cartesianToCartographic' (pokazanego w odpowiedzi poniżej), aby wykonać konwersję. – emackey