Ho bisogno di sapere qual è il centro attuale della mappa del cesio.Get center in Cesio Mappa
Ho provato a utilizzare viewer.camera.position
ma fornisce sempre lo stesso valore z (x: 16921255.101297915, y: 5578093.302269477, z: 12756274) e non sono sicuro dei valori x e y. Sono in metri?
Grazie mille!
EDIT: Soluzione
Con tutto l'aiuto che ho ricevuto ho messo questo insieme (grazie!):
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));
}
};
Questa funzione fornisce longitudine/latitudine coordinate in gradi.
Sì, valori cartesiani sono in metri. L'asse X punta dal centro della Terra verso Lat 0, Lon 0, Alt 0. L'asse Z punta dal centro verso il Polo Nord. L'asse Y forma un sistema di coordinate a destra con gli altri due. Devi usare 'Ellipsoid.cartesianToCartographic' (mostrato nella risposta sotto) per eseguire la conversione. – emackey