cesium 坐标系解读

网上有很多关于cesium坐标系的系统介绍,但是在实际开发中,并不能对号入座,本人也测绘出身也搞得一头雾水。因此写下在对cesium开发中坐标系的理解。

初学者最容易接触到的就是事件,因此以事件为入口来讲述坐标系

Pick----屏幕坐标   Cartesian----世界坐标  cartographic-----地理坐标(弧度)
Point----经纬度坐标

事件回调的坐标系是屏幕坐标系

handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function(movement) {
  var cartesian = viewer.camera.pickEllipsoid(movement.endPosition, scene.globe.ellipsoid);
  if (cartesian) {
    var cartographic = Cesium.Cartographic.fromCartesian(cartesian);
    var longitudeString = Cesium.Math.toDegrees(cartographic.longitude).toFixed(2);
    var latitudeString = Cesium.Math.toDegrees(cartographic.latitude).toFixed(2);
  console.log(longitudeString)

  } else {

  }
}, Cesium.ScreenSpaceEventType.MOUSE_MOVE);

即movement中的坐标是屏幕坐标系;

屏幕坐标系转向世界坐标系---即3857投影坐标系

var cartesian = viewer.camera.pickEllipsoid(pick, viewer.scene.globe.ellipsoid);

通过API可以查到,第一个参数是屏幕坐标系的坐标,第二个参数是椭球体,默认为84;返回三维的世界坐标系

世界坐标系-弧度坐标系  投影坐标系----大地坐标系转换(弧度制)

var cartographic = Cesium.Cartographic.fromCartesian(cartesian);

弧度制坐标转为经纬度坐标

var latitudeString = Cesium.Math.toDegrees(cartographic.latitude).toFixed(2);

发布了243 篇原创文章 · 获赞 36 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/A873054267/article/details/102739572
今日推荐