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



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

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

下面是JavaScrippit中的代码:

let oldLocation = [ [25.049956, 121.568885], [25.049999, 121.568941], [25.049999, 121.568885] ]
function offetGeoArea(area, offsetDistance)={

//the  offset algorithm

return newLocation
}

下面的偏移图:

在此处输入图像描述

这并不像你听起来那么简单,要将一个点移动给定的距离,你需要特别考虑它的纬度。在赤道向西移动1度的距离与在两极附近的距离大不相同。

也就是说,有一些像CesiumJS这样的框架具备了实现这一点所需的功能。CesiumJS有点重,如果你想让它保持轻量级javascript的话。无论你拥有什么样的映射技术,都可能具有类似的功能来计算一个点。

所以一票赞成https://cesiumjs.org

最新更新