0
セシウムの3Dビューで地球の残りの半分を見るためにカメラを飛ぶ方法はありますか?セシウム - 3Dビューで地球の他の半分にカメラをフライト
セシウムの3Dビューで地球の残りの半分を見るためにカメラを飛ぶ方法はありますか?セシウム - 3Dビューで地球の他の半分にカメラをフライト
あなたはこのようなことをしていると思います。
1 - 現在の位置
2ゲット - 先の計算を
3からflyTo()
先
var viewer = new Cesium.Viewer('cesiumContainer');
var scene = viewer.scene;
var btn = document.getElementById('swap');
btn.addEventListener('click', goToOtherSide);
function goToOtherSide() {
// Get the position of the camera
var currentPosition = getPosition();
// Get the position on the other side of the earth
var nextPosition = getOtherSide(currentPosition);
// Use flyTo with the new position, and maintain the height
viewer.camera.flyTo({
destination : Cesium.Cartesian3.fromDegrees(+nextPosition.lon, +nextPosition.lat, viewer.camera.positionCartographic.height)
});
}
function getPosition() {
var center = viewer.camera.pickEllipsoid(
new Cesium.Cartesian2(viewer.canvas.width/2, viewer.canvas.height/2), Cesium.Ellipsoid.WGS84);
var cartographic = scene.globe.ellipsoid.cartesianToCartographic(center);
var lat = Cesium.Math.toDegrees(cartographic.latitude).toFixed(2);
var lon = Cesium.Math.toDegrees(cartographic.longitude).toFixed(2);
return {
lat: lat,
lon: lon
};
}
function getOtherSide(currentPosition) {
var ln = +currentPosition.lon + 180;
if (ln > 180) {
ln -= 360;
}
var lt = -currentPosition.lat;
return {
lat: lt,
lon: ln
};
}
は、あなたがより具体的にすることはできますか?カメラフライ部に問題がありますか?または、飛行する場所を決定しますか? – Zac
このセシウムの砂浜は、flyTo - http://cesiumjs.org/Cesium/Apps/Sandcastle/index.html?src=Camera.html&label=Showcasesを使用してカメラの位置を操作する方法を示しています。 – Zac