2017-06-22 66 views
-1

我想从GPS提供程序复制地图,我可以通过API访问地图中的每个形状,但是我遇到了“走廊”形状的问题。用Google Maps绘制“走廊”

一个走廊就像是一个多边形,但是当你绘制你定义的宽度(以米为单位)和“点击”在某些方面的一些“精确”:

Corridor config

正如你所看到的,每个白盒子都是“点击”,蓝线是“走廊”。

我的问题是我如何绘制它?因为我试着用折线,但预期它不工作,当我缩小它看起来怪异:

corridor at this moment

(我现在有什么)

enter image description here

(如何应该看)

我想我必须为它绘制一个多边形,但我不知道如何计算边缘的坐标,因为API只返回“精度”和宽度的点,但没有角落坐标秒。

有些想法?

+0

1.绘制折线。 2.使用草皮计算该多段线的缓冲区(多边形)。缓冲区是你的走廊。 http://turfjs.org/docs/#buffer – Ninjaneer

回答

0

也许你可以尝试这样的事:

poly = new google.maps.Polyline({ 
      strokeColor: '#737CA1', 
      strokeOpacity: 0.5, 
      strokeWeight: 3, 
      map: map, 
}); 

的重量可以调整您的首选宽度。

而且尽量去除圆,所建议的在此答案:removing-a-google-maps-circle-shape

circle.setMap(null); 
+0

我尝试了多义线,但是你看到的圆是缩小的多段线,它看起来像一个圆:/这就是为什么多段线不起作用 – FxckDead

0

我建议从中心计算两个坐标在每个方向上的一半与分离的偏移,并给它们与中心线轴承垂直轴承sphericalutil库从谷歌地图,然后你添加所有这些指向一个多边形按正确的顺序,你会得到一个固定的多边形尊重中心线。

相关问题