turf.js/turf.buffer和Google Maps API

问题描述:

我有一个简单的Google地图。我在给定的经纬度处添加了一个标记。turf.js/turf.buffer和Google Maps API

我想使用turf.js来计算1km缓冲区,然后我可以显示为Google Maps多边形。

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

enter image description here

比赛结束使用turf.js缓冲点,折线和多边形,所以我不能只画一个谷歌地图圈作为一种解决方法很遗憾。我会考虑迁移到传单,但是我们已经相当投入了谷歌地图API

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

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

我正在寻找使用clipper.js代替。这是一个笛卡儿图书馆(2d),所以在英国我可以使用osgb eastings和northings。我还必须翻转南北方向,因为裁剪器假定我们正在处理标准图形,即y轴在css中反转,0,0是左上角。

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

+1

现在已经修复,正如在这篇文章中解释的那样https://github.com/Turfjs/turf/pull/718 –