【问题标题】:Draw a "Corridor" with Google Maps用谷歌地图画一条“走廊”
【发布时间】:2017-06-22 08:09:17
【问题描述】:

我正在尝试从 GPS 提供商复制地图,我可以使用 API 访问地图中的每个形状,但我遇到了“走廊”形状的问题。

走廊就像一个多边形,但是当你绘制它时,你定义了一个宽度(以米为单位)并“点击”一些点以获得一些“精度”:

如您所见,每一个白框都是“点击”,蓝线是“走廊”。

我的问题是如何绘制它?因为我尝试使用折线但它没有按预期工作,所以当我缩小它看起来很奇怪:

(我现在拥有的)

(它应该看起来如何)

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

一些想法?

【问题讨论】:

  • 1.画一条折线。 2.使用草皮计算该折线的缓冲区(多边形)。缓冲区是你的走廊。 turfjs.org/docs/#buffer

标签: javascript google-maps dictionary coordinates


【解决方案1】:

也许你可以试试这样的:

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

可以根据您喜欢的宽度调整重量。

也尝试删除圆圈,如此答案中所建议:removing-a-google-maps-circle-shape

circle.setMap(null);

【讨论】:

  • 我试过折线,但你看到的圆圈是一条缩小的折线,它看起来像一个圆:/这就是折线不起作用的原因
【解决方案2】:

我建议计算两个坐标偏移一半,每个方向与中心分开,并使用谷歌地图中的球面工具库为它们提供与中心线轴承垂直的轴承,然后以正确的顺序将所有这些点添加到多边形,你会得到一个相对于中心线固定的多边形。

【讨论】:

    猜你喜欢
    • 2013-09-28
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多