Google Earthのナビゲーションと同様に、セシウムのアプリの左右の矢印キーを模倣します。右または左の矢印キーを押すと、地球の周りをビューの境界の5%右または左に回転させる必要があります。ズームアウトされている場合は大きな角度で回転し、ズームインした場合は回転します。セシウムで左または右に回転する方法ビュー境界に基づくマップ
すでにViewer、Camera、Sceneなどのドキュメントを見ていますが、単純な操作を行う方法がわかりません。
固定量を左右に回転できますが、表示範囲の幅に基づいて量を回転します。セシウムの視野の上、左、右、下を最大限にどのように取得しますか?
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));
}
}
は、テスト
SandCastleアプリを訪問し、上記のJavaScriptスニペットに貼り付けます。キーボードバインディングを有効にするには、フルスクリーンモードをクリックすると、矢印キーが機能します。
また、カメラを使用してpositionCartographicにアクセスすることもできますが、これはビュー境界ではなくカメラの地図上の位置だけです。
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
});
ここ固定角度は、中心ビューポイントに追加されるが、角度が最大とビュー・エクステント内の最小経度値の差の割合である必要があります。例えばangle =(maxLon - minLon)/ 20
感謝。驚くばかり! – JasonM1