如何在JavaScript中使用纬度和经度从地图区域多边形偏移特定长度的单位?

问题描述

我有一组纬度和经度数组,例如[[lat1,lon1],[lat2,lon2],[lat3,lon3]],它们形成一个区域(多边形),我想向外偏移此地理区域(多边形)按特定的长度单位(例如1米或1.5米)。

然后我将最终获得一组新的数组[[newlat1,newlon1],[newlat2,newlon2],[newlat3,newlon3]]

下面的JavaScripit中的代码

let oldLocation = [ [25.049956,121.568885],[25.049999,121.568941],121.568885] ]

function offetGeoArea(area,offsetdistance)={
  
  //the  offset algorithm
  
  return newLocation
}

下面的偏移图:

enter image description here

解决方法

这并不像听起来那样简单,要将点移动给定距离需要特别考虑其纬度。向西移动1度与赤道附近的距离相差很大。

那就是说,像CesiumJS这样的框架具有执行此操作所需的功能。如果您要尝试使CesiumJS的JavaScript保持简洁,则它有点繁重。无论您使用的是哪种映射技术,都可能具有类似的功能来计算点。

因此,https://cesiumjs.org的一票