cesium 获取中心点随笔

// 根据geojson数据获取中心点 (面)

let positions = Cesium.Cartesian3.fromDegreesArray(coordinates.flat(Infinity))
// 获取中心点
let cartesian = Cesium.BoundingSphere.fromPoints(positions).center
// 转换成经纬度
const cartographic = Cesium.Cartographic.fromCartesian(cartesian);
const longitudeString = Cesium.Math.toDegrees(
cartographic.longitude
);
const latitudeString = Cesium.Math.toDegrees(
cartographic.latitude
);
center = [longitudeString, latitudeString]

// 地图实体面中心点

var polyPositions = polygon.hierarchy.getValue(Cesium.JulianDate.now()).positions;
var polyCenter = Cesium.BoundingSphere.fromPoints(polyPositions).center;//中心点
polyCenter = Cesium.Ellipsoid.WGS84.scaleToGeodeticSurface(polyCenter);

// 矩形中心点

var rectangle = Cesium.Rectangle.fromDegrees(//矩形视角范围
      west,
      south,
      east,
      north,
    );
    var center = Cesium.Rectangle.center(rectangle);//获取视角范围中心点(得到的结果为弧度Cartographic)
    var adre = Cesium.Cartographic.toCartesian(center);//把弧度转换为x,y,z(世界坐标也就是Cartographic3)
    //世界坐标转换成经纬度
    var ellipsoid = viewer.scene.globe.ellipsoid;
    var cartographic = ellipsoid.cartesianToCartographic(adre);
    var lat = Cesium.Math.toDegrees(cartographic.latitude);//纬度
    var lng = Cesium.Math.toDegrees(cartographic.longitude);//经度
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值