【问题标题】:How can one draw polylines or curves in Google maps between two location but avoid drawing on land?如何在两个位置之间的谷歌地图中绘制折线或曲线但避免在陆地上绘制?
【发布时间】:2015-03-09 22:29:52
【问题描述】:

正如问题所述,如何在 Google 地图上的两点之间绘制折线或曲线,如下所示:

但要避免在两点之间画线。

我想用这个功能来绘制动态游轮行程。不要考虑非常复杂的路线,简单的东西。

例如,假设我有以下地点:巴塞罗那、马赛、尼斯、热那亚、那不勒斯、巴勒莫,然后返回巴塞罗那。

如果我画直线,它看起来像这样:http://prntscr.com/6eubrs 相反,我想实现这样的目标:http://prntscr.com/6eucm9

或者有没有办法使用/访问渡轮路线并利用它们?

【问题讨论】:

  • 您需要陆地块的数据,然后将其缓冲到离岸多远。您将根据缓冲区域找到您的点之间的所有匹配点,并沿着这些点绘制一条折线 - 这可以通过将所有点添加到一个数组并使用它作为您的路径创建一条折线来完成。查看 GeoJson 库以管理您的陆地数据,然后将其添加到 Google 地图数据层。 developers.google.com/maps/documentation/javascript/… 更有效的方法:获取一个 API,它可以提供您的运输路线并使用其中的空间数据。
  • 感谢您的评论。问题是商业路线和游船路线很不一样,而且我发现了一些很奇怪的游船路线,比如在一个没有商业路线的小岛附近停靠。
  • 但是,获取陆地数据和缓冲的想法听起来像是一个值得尝试的解决方案。我会尝试一下,看看这是否有效:)

标签: google-maps


【解决方案1】:

您可以使用 OpenStreetMap 并仅使用 existing routing engines 之一导入渡轮数据

【讨论】:

  • 我才意识到轮渡路线不好。如果我有一个从巴塞罗那直接航行到那不勒斯的游轮,由谷歌或任何其他 Maps api 生成的轮渡路线将在不同的其他位置有几跳,这是不行的,因为它不会绘制我需要的直接路线它到。
猜你喜欢
  • 2017-11-02
  • 1970-01-01
  • 2017-09-15
  • 2017-06-27
  • 1970-01-01
  • 2018-03-06
  • 2015-10-17
  • 1970-01-01
  • 2016-05-14
相关资源
最近更新 更多