我想知道是否有办法让 api 在乘坐渡轮时通知我。我知道你可以改变avoidFerries:true 和false,但是当设置为true 时,我需要一种知道渡轮已被占用的方法,以便我可以在必要时通过外部按钮进行覆盖。我只需要一种让 gMaps 告诉我已经被占用的方法。任何建议将不胜感激。
问候。
您必须解析路线的步骤。
当一个步骤需要渡轮时,它取决于 TravelMode 如何检测它。
对于 TRANSIT,您必须检查:
step.transit.line.vehicle.type==='FERRY'
Run Code Online (Sandbox Code Playgroud)
对于其他 TravelModes,它将是:
step.maneuver==='ferry'
Run Code Online (Sandbox Code Playgroud)
检测它的函数可能如下所示:
/**
* @param route object DirectionsRoute
* @return array with steps where a ferry has been taken
**/
function get_ferries(route){
var f=[],section;
for(var leg=0;leg<route.legs.length;++leg){
for(var step=0;step<route.legs[leg].steps.length;++step){
section = route.legs[leg].steps[step];
if(
section.maneuver==='ferry'
||
(
section.transit
&&
section.transit.line
&&
section.transit.line.vehicle
&&
section.transit.line.vehicle.type==='FERRY'
)
){
f.push(section);
}
}
}
return f;
}
Run Code Online (Sandbox Code Playgroud)
演示:
step.transit.line.vehicle.type==='FERRY'
Run Code Online (Sandbox Code Playgroud)
step.maneuver==='ferry'
Run Code Online (Sandbox Code Playgroud)
/**
* @param route object DirectionsRoute
* @return array with steps where a ferry has been taken
**/
function get_ferries(route){
var f=[],section;
for(var leg=0;leg<route.legs.length;++leg){
for(var step=0;step<route.legs[leg].steps.length;++step){
section = route.legs[leg].steps[step];
if(
section.maneuver==='ferry'
||
(
section.transit
&&
section.transit.line
&&
section.transit.line.vehicle
&&
section.transit.line.vehicle.type==='FERRY'
)
){
f.push(section);
}
}
}
return f;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1468 次 |
| 最近记录: |