如何在谷歌地图上绘制两个位置之间的折线或曲线,但避免在陆地上绘制?

4

正如问题所述,我该如何在Google地图上绘制两个点之间的折线或曲线,类似于这样:

enter image description here

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

我想使用此功能来绘制动态巡航行程。不考虑非常复杂的路线,只需要简单的东西。

例如,假设我有这些位置:巴塞罗那,马赛,尼斯,热那亚,那不勒斯,巴勒莫,然后返回巴塞罗那。

如果我画直线,它会看起来像这样:http://prntscr.com/6eubrs 相反,我想要实现类似于这样的效果:http://prntscr.com/6eucm9

或者是否有一种方法可以使用/访问渡轮路线并在其上绘制?


2
你需要陆地数据,然后按照你想要的离岸距离进行缓冲。基于缓冲区域,在你的点中找到所有匹配点,并沿着这些点绘制折线 - 这可以通过将所有点添加到数组中并使用该数组作为路径来完成。查看GeoJson库以管理您的陆地数据,然后将其添加到Google Maps数据层中。https://developers.google.com/maps/documentation/javascript/datalayer#load_geojson 更有效的方法:获取一个API,该API提供航运路线并使用其中的空间数据。 - TResponse
感谢您的评论。问题在于商业航线与游轮航线非常不同,此外我发现一些游轮航线非常奇怪,例如停靠在没有商业航线连接的小岛附近。 - Alex Rosca
但是,获取陆地数据并进行缓冲的想法听起来像是值得尝试的解决方案。我会尝试一些东西,看看是否有效 :) - Alex Rosca
你解决了吗?我有同样的任务。 - Konstantin Konopko
1个回答

1
你可以使用OpenStreetMap,并且只导入渡轮数据,与现有的路由引擎之一配合使用。

我刚刚意识到渡轮路线不正确。如果我有一艘直接从巴塞罗那到那不勒斯航行的游轮,由Google或任何其他地图API生成的渡轮路线将在不同的其他位置进行几次跳跃,这是不好的,因为它不能绘制我需要的直接路线。 - Alex Rosca

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接