仕事で、ルート案内ができるAPIがないか調べて実装してほしいとのことだったので、調べてみたらGoogleマップにあるというのが分かった。その時見つけたのが下記の記事。
ASCII.jp:Googleマップ待望の新機能「ルート案内API」の使い方
GDirectionsというオブジェクトを使うらしい。v2でしか使えないようだけど、まあいいだろうと思って実装。
ただ、v3でしか実装されていない交通状況のAPI(Google Japan Blog: 交通状況がGoogle マップで見られるようになりました)も使いたいとのことだったので、v2とv3のAPIを両方使うということなのだけれども、どうにも衝突してしまってうまく動かない。
困ったなぁ。と思いながらもう少し調べてみると、v3にはgoogle.maps.DirectionsServiceという似たようなオブジェクトがあると知る。
Maps API V3 サービス – Google Maps API Version3 日本語ドキュメント(非公式)
というわけで、梅田を出発し、途中、難波により、天王寺まで行くプログラムを作ってみることに。
var directionDisplay;
var directionsService = new google.maps.DirectionsService(); // 地図表示用
var map;
directionsDisplay = new google.maps.DirectionsRenderer(); // ルート案内
var myOptions = {
mapTypeId: google.maps.MapTypeId.ROADMAP, // 普通の2D表示
}
map = new google.maps.Map(document.getElementById("map2"), myOptions);
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById("route2"));
var start = "梅田駅";
var end = "天王寺駅";
var request = {
origin:start, // 出発地
destination:end, // 目的地
waypoints:[{location:"難波駅"}], // 途中経路
travelMode: google.maps.DirectionsTravelMode.DRIVING // 車で
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response); // 描画
}
});
WordPressに貼ると、他のCSSに影響を受けて表示が少し変になってしまっていますが、なんとか表示できました。

コメント