function getPosition() {
//得到當前三維場景
var scene = viewer.scene;
//得到當前三維場景的橢球體
var ellipsoid = scene.globe.ellipsoid;
var entity = viewer.entities.add({
label : {
show : false
}
});
var longitudeString = null;
var latitudeString = null;
var height = null;
var cartesian = null;
// 定義當前場景的畫布元素的事件處理
var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
//設置鼠標移動事件的處理函數,這裏負責監聽x,y座標值變化
handler.setInputAction(function(movement) {
//通過指定的橢球或者地圖對應的座標系,將鼠標的二維座標轉換爲對應橢球體三維座標
cartesian = viewer.camera.pickEllipsoid(movement.endPosition, ellipsoid);
if (cartesian) {
//將笛卡爾座標轉換爲地理座標
var cartographic = ellipsoid.cartesianToCartographic(cartesian);
//將弧度轉爲度的十進制度表示
longitudeString = Cesium.Math.toDegrees(cartographic.longitude);
latitudeString = Cesium.Math.toDegrees(cartographic.latitude);
//獲取相機高度
height = Math.ceil(viewer.camera.positionCartographic.height);
entity.position = cartesian;
entity.label.show = true;
entity.label.text = '(' + longitudeString + ', ' + latitudeString + "," + height + ')' ;
}else {
entity.label.show = false;
}
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);
//設置鼠標滾動事件的處理函數,這裏負責監聽高度值變化
handler.setInputAction(function(wheelment) {
height = Math.ceil(viewer.camera.positionCartographic.height);
entity.position = cartesian;
entity.label.show = true;
entity.label.text = '(' + longitudeString + ', ' + latitudeString + "," + height + ')' ;
}, Cesium.ScreenSpaceEventType.WHEEL);
}
cesium獲取當前鼠標的經緯度高度
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.