繁体   English   中英

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

[英]how to offset specific unit of length from a map area(polygon) with latitude and longitude in JavaScript?

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

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

JavaScript 中的代码如下:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM