Desidera simulare i tasti freccia sinistra-destra nell'app CesiumJS simile alla navigazione di Google Earth. Premere i tasti freccia destra o sinistra per ruotare il globo ~ 5% dei limiti della vista a destra o sinistra, rispettivamente. Se ingrandito, ruota in larga misura e ingrandito ruota in misura minore.Come ruotare a sinistra oa destra nella mappa del cesio in base ai limiti di visualizzazione
Già visto la documentazione per Viewer, Camera, Scene, ecc. Ma non è ovvio come fare qualcosa che dovrebbe essere semplice.
In grado di ruotare una quantità fissa destra o sinistra ma si desidera ruotare l'importo in base alla larghezza nell'estensione della vista. Come si ottiene la massima estensione in alto, a sinistra, a destra, in basso per la visualizzazione in cesio?
var viewer = new Cesium.Viewer('cesiumContainer', {
navigationHelpButton: false, animation: false, timeline: false
});
var camera = viewer.camera;
document.addEventListener('keydown', function(e) {
setKey(e);
}, false);
function setKey(event) {
if (event.keyCode == 39) { // right arrow
camera.rotateRight(Cesium.Math.toRadians(10.0));
} else if (event.keyCode == 37) { // left arrow
camera.rotateLeft(Cesium.Math.toRadians(10.0));
}
}
Per provare, visitare SandCastle app e incollare nel frammento javascript sopra. Per attivare i binding della tastiera, fare clic su modalità schermo intero e i tasti freccia funzioneranno.
In alternativa, la telecamera può essere utilizzata per accedere a posizioneCartografica, ma questa è solo la posizione cartografica della telecamera, non i limiti della vista.
var positionCartographic = camera.positionCartographic;
var height = positionCartographic.height;
var lat = positionCartographic.latitude;
var lon = positionCartographic.longitude + Cesium.Math.toRadians(10.0);
camera.flyTo({
destination: Cesium.Cartesian3.fromRadians(lon, lat, height),
duration: 1.0
});
Qui un angolo fisso viene aggiunto al punto vista centrale, ma l'angolo deve essere una percentuale della differenza tra i valori massimo e minimo di longitudine nella misura in vista; per esempio. angle = (maxLon - minLon)/20
Grazie. Eccezionale! – JasonM1