카메라 위치의 수직 하향 지점의 좌표 알아내기
//현재 카메라 위치를 가져옴 : 경위도(라디안), 높이(미터)
var cartographic = viewer.camera.positionCartographic;
//라디안을 도(경위도) 단위로 변경
//경도
var longitude = Number(Cesium.Math.toDegrees(cartographic.longitude).toFixed(10));
//위도
var latitude = Number(Cesium.Math.toDegrees(cartographic.latitude).toFixed(10));
Canvas에 나타난 지도의 가운데 지점 좌표 알아내기
//지도 center 지점에 대한 좌표값 취득
var center = screenCenterCoodinate();
var longitude = Number(center[0].toFixed(10));
var latitude = Number(center[1].toFixed(10));
/**
* 지도 center 지점에 대한 좌표값 취득
*/
function screenCenterCoodinate() {
var cartographic = null;
//장면 모드에 따라 처리방식이 다름
if (viewer.scene.mode == 3) { //3D 지도에서
var windowPosition = new Cesium.Cartesian2(viewer.container.clientWidth / 2, viewer.container.clientHeight / 2);
var pickRay = viewer.scene.camera.getPickRay(windowPosition);
var pickPosition = viewer.scene.globe.pick(pickRay, viewer.scene);
cartographic = viewer.scene.globe.ellipsoid.cartesianToCartographic(pickPosition);
} else if (viewer.scene.mode == 2) { //2D 지도에서
cartographic = viewer.camera.positionCartographic;
}
//라디안을 도(경위도) 단위로 변경
var longitude = Number(Cesium.Math.toDegrees(cartographic.longitude)); //라디안을 경위도 단위로 변경
var latitude = Number(Cesium.Math.toDegrees(cartographic.latitude)); //라디안을 경위도 단위로 변경
//아래와 같은 방법으로도 동일한 값을 구할 수 있었다
/*
var longitude = cartographic.longitude * (180 / Math.PI);
var latitude = cartographic.latitude * (180 / Math.PI);
*/
console.log(longitude, latitude);
return [longitude, latitude];
}