cesium獲取當前鼠標的經緯度高度

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); }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章