カリフォルニア州ローン パインからカリフォルニア州ヨセミテ ビレッジまでの最短ルートを見つけようとしています。
簡単な Google マップの検索では、2 つのルートが表示されます。
- 有料ルート: US-395N、CA-120W ~316 km
- 有料路線:CA-99N ~596km
DirectionService/DistanceMatrixService には avoidTolls パラメータがあります。
avoidTolls (optional) — If true, the directions between points will be calculated using non-toll routes, wherever possible.
avoidTolls (optional) when set to true indicates that the calculated route(s) should avoid toll roads, if possible.
適用時にサービスがルート #1 を返すことを期待していますavoidTolls: false
が、代わりにルート #2 が返されます。
私の期待または私の実装http://jsfiddle.net/nQzD8/2に欠陥がありますか?
アップデート:
モール博士が指摘したように、ルート #1 は、含まれている有料ルートのためではなく、現時点で閉鎖されている可能性があるため無視されます (「この道路は季節によって閉鎖される可能性があります」という道順のステップで)。
user2961817 さんは、高速道路を避ける(設定 )ことで、316kmの結果が得られることを発見しましたavoidHighways: true
。
departure_time
Maps for Business の顧客になり、パラメータで DistanceMatrix API を使用する以外に、別の時期に DistanceMatrix の結果を取得する他のオプションはありますか?
解決:
ルート #1 は、有料ルートが含まれているためではなく、要求時に閉鎖されている可能性があるため無視されます。より短いルートを取得するには、次のオプションがあります。
DistanceMatrixService:
- ビジネスのお客様になり、departure_time パラメーターを設定します。
- で 2 番目のリクエストを発行し
avoidHighways: true
、より短いルートを使用します (この特定のケースではたまたま機能しますが、他のほとんどのケースでは機能しません) 。
方向サービス:
- を使用
provideRouteAlternatives:true
し、代替案を反復して、最短のものを取得します