hongfaqiu / cesium-extends

CesiumJS 的扩展库,提供事件订阅、大数据geojson加载、geojson样式、tooltip、popup、缩放控制、绘图工具、测量工具、双屏联动、指南针、热力图等功能
https://extends.opendde.com/
MIT License
219 stars 51 forks source link

贴地面积量算为什么在屏幕空间采样? #6

Closed houluy closed 1 year ago

houluy commented 1 year ago

请问在贴地面积量算过程中,为什么将Cartesian3转换到屏幕坐标再进行采样,创建泰森多边形?这样的话当相机变化时,结果不是会改变吗?

/**
 * 计算贴地的多边形面积
 * @param {Cartesian3[]} positions 点位
 * @returns {number} 面积/平方米
 */
function calcArea(positions: Cartesian3[]): number {
  return calculateSurfaceArea(
    positions.map((item) => Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene, item)),
  );
hongfaqiu commented 1 year ago

后面会重新从屏幕坐标转换为带高度的经纬度坐标的