问题描述
我有一组纬度和经度数组,例如[[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
}
下面的偏移图:
解决方法
这并不像听起来那样简单,要将点移动给定距离需要特别考虑其纬度。向西移动1度与赤道附近的距离相差很大。
那就是说,像CesiumJS这样的框架具有执行此操作所需的功能。如果您要尝试使CesiumJS的JavaScript保持简洁,则它有点繁重。无论您使用的是哪种映射技术,都可能具有类似的功能来计算点。
因此,https://cesiumjs.org的一票