turf.js / turf.buffer和Google Maps API

时间:2015-07-03 22:54:51

标签: google-maps-api-3 turfjs

我有一个简单的谷歌地图。我已经在给定的纬度添加了一个标记,lng。

我想使用turf.js来计算一个1公里的缓冲区,然后我可以将其显示为Google Maps多边形。

turf.buffer()返回的路径是一个椭圆。从标记到边界的距离在纬度上是正确的。然而,它纵向短缺1公里。看起来投影存在问题,但Google Maps API和turf.js文档状态WGS84都是默认投影。

enter image description here

最终游戏正在使用turf.js来缓冲点,折线和多边形,所以我不能简单地绘制谷歌地图圈作为解决方法。我会考虑迁移到Leaflet,但我们已经投入大量资金开发Google Maps API

我已经创建了一个显示问题的htm文件here

1 个答案:

答案 0 :(得分:1)

我不会疯了。缓冲区不是测地线所以在赤道处你得到一个圆形缓冲区,当你向北或向南移动时,你的缓冲区会被纵向压向两极。 turf.js团队都知道。有关详细信息,请参阅https://github.com/Turfjs/turf/issues/110

我正在考虑使用clipper.js。这是一个笛卡儿图书馆(2d)所以在英国我可以使用osgb eastings和northings。我也必须向北和向南翻转,因为限幅器假设我们正在处理标准图形,即y轴像css一样倒转,0,0是左上角。

我将使用geotools在osgb和wgs之间进行转换。