目前能够按陆地计算距离。使用距离矩阵,但遇到大海后我无法计算。我的标记消失了。
一旦我搜索了吉马拉斯,我的标记就会消失。我知道这是因为我使用了 travelMode:google.maps.TravelMode.DRIVING, 是否有穿越大海的旅行模式?
答案 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 中提交功能请求。希望这可以帮助。 :)