谷歌地图旅行模式跨海

时间:2018-05-17 01:17:15

标签: javascript google-maps google-maps-api-3

目前能够按陆地计算距离。使用距离矩阵,但遇到大海后我无法计算。我的标记消失了。

示例: enter image description here

一旦我搜索了吉马拉斯,我的标记就会消失。我知道这是因为我使用了 travelMode:google.maps.TravelMode.DRIVING, 是否有穿越大海的旅行模式?

1 个答案:

答案 0 :(得分:1)

截至目前,此功能尚不可用。您可以做的最好的事情是在Google Issue tracker

中提交功能请求

如果你现在真的需要这个,我可以建议通过做两个单独的请求,然后添加稍后返回它来解决2个位置(由水域分隔)的距离。 (我只能给你一个想法,但这不完整)

您可以手动创建一个功能,计算从原点到最近端口的距离。我们可以使用Iloilo City作为原点的示例,渡轮站是Iloilo Domestic Port。我使用Places Nearby Search得到了这个。以下是包含有助于参数的代码部分:

var service = new google.maps.places.PlacesService(map);
service.nearbySearch({
  location: {lat: 10.72015, lng: 122.562106},
  radius: 5000,
  keyword: 'ferry',
  type: 'transit_station',
  rankby: 'popularity'
}, callback);

然后获取Guimaras(您的目的地)最近的端口Jordan Guimaras Jetty Port

var service = new google.maps.places.PlacesService(map);
service.nearbySearch({
  //location: {lat: 10.72015, lng: 122.562106}, //iloilo
  location: {lat: 10.592866, lng: 122.632508}, //guimaras
  radius: 10000,
  keyword: 'port',
  type: 'transit_station',
  rankby: 'popularity'
}, callback);
  

注意:由于代码并不总是返回结果,因此代码不一致。此外,这可能不适用于某些情况,因为'port / ferry'关键字并不总是存在于半径中。

现在我们有了这两个端口,我们现在可以使用距离矩阵获取从Iloilo到端口的距离,然后从下一个端口向Guimaras做另一个请求。完成后,您现在可以添加2个结果。

  

另一个缺点是你无法计算从第一个端口到下一个端口的距离。这将跳过水域,只计算土地面积。

     

请记住,这只是我的建议,也许你可以想到另一种选择。同样,最好的解决方法是在 Google Issue tracker 中提交功能请求。希望这可以帮助。 :)

相关问题