2009/06/29
カテゴリ : Tech
GoogleMap
JavaScript
ルート検索
GoogleMapsAPIの新機能 ルート検索機能を試してみる
こんにちは。松田です。
GoogleMapsAPIにルート検索機能がついたらしいので試してみました。
英語版では以前から使えたようですが、日本語版での使用が可能になったということらしいです。
http://googlejapan.blogspot.com/2009/06/api.html
使い方は簡単で、今までのコードに少し付け足すだけでルート検索機能を追加することが出来ます。
1. script呼び出しの "v=2" の部分を "v=2.x" に変更
2. GDirectionsにGMap2オブジェクトを渡しインスタンスを生成
3. 出発地点と到着地点の「座標」もしくは「地名・名称」を配列に格納
座標の場合はGLatlng型を渡し、地名の場合はそのまま文字列で渡します。
4. 座標、地名の配列をGDirectionsのloadFromWaypointsに渡す
これで完成です。
コード全体は以下のようになります。
実行結果はこちらです。
また、以下のようにGDirectionsコンストラクタの第2引数にdivエレメントを渡すとルートの詳細を自動的に表示してくれます。
divを一つ用意するだけでルートの詳細が出るのはうれしいですね。
これが見やすいのかどうかは微妙ですが。
3, 4の部分はloadFromWaypointsの代わりにloadを使った、文字列をまとめて一つ渡すだけの方法もありますが、コードの組みやすさや座標を組み込むことを考えると、loadFromWaypointsだけ覚えておけばいいんじゃないかなーと言う気がします。
ルート検索のAPIについての質問 [Google-Maps-API-Japan]
また、このルート検索機能の仕様として、検索を実行すると開始地点・中継地点・到着地点に緑色のGMarkerが必ずaddOverlayされてしまいます。
自分で生成したマーカーをドラッグさせて開始地点・終了地点を決めるようなスクリプトを作ろうとすると、コイツが邪魔をしてうまくクリック出来なくなってしまうので注意しましょう。
本家にそれをうまく回避したデモがありました。
↓
http://esa.ilmari.googlepages.com/draggabledir.htm
なんにせよ使いどころの多い機能だと思いますので、今後も注目していきたいですね。
GoogleMapsAPIにルート検索機能がついたらしいので試してみました。
英語版では以前から使えたようですが、日本語版での使用が可能になったということらしいです。
http://googlejapan.blogspot.com/2009/06/api.html
使い方は簡単で、今までのコードに少し付け足すだけでルート検索機能を追加することが出来ます。
1. script呼び出しの "v=2" の部分を "v=2.x" に変更
- <script
src="http://maps.google.com/maps?file=api&v=2.x&key=....
2. GDirectionsにGMap2オブジェクトを渡しインスタンスを生成
- directions
= new GDirections(map);
3. 出発地点と到着地点の「座標」もしくは「地名・名称」を配列に格納
座標の場合はGLatlng型を渡し、地名の場合はそのまま文字列で渡します。
- points
= []; - points.push(new
GLatLng(35.706,139.76)); - points.push('東京ドーム');
4. 座標、地名の配列をGDirectionsのloadFromWaypointsに渡す
- directions.loadFromWaypoints(points);
これで完成です。
コード全体は以下のようになります。
- <!DOCTYPE
html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - <html
xmlns="http://www.w3.org/1999/xhtml"> - <head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/> <title>Google Maps JavaScript API Example</title> <script src="http://maps.google.com/maps?file=api&v=2.x&key=ABQIAAAAbMxmqyfT0_t60Kczi-q5lBSySxmB-uUmG4DOxxXg63OHEaT07BREeBFXvMHRK6Ipn7liRsdLZmNVNA" type="text/javascript"></script> <script type="text/javascript"> //<![CDATA[ var map; var directions; function load() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); map.addControl(new GSmallMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(35.706, 139.76), 13); points = []; points.push(new GLatLng(35.706,139.76)); points.push("東京ドーム"); // ルート詳細を表示する場合は第二引数にdivエレメントを渡す directions = new GDirections(map, document.getElementById("route")); directions.loadFromWaypoints(points); } } //]]> </script> - </head>
- <body
onload="load()" onunload="GUnload()"> <div id="map" style="width: 500px; height: 300px"></div> <div id="route"></div> - </body>
- </html>
実行結果はこちらです。
また、以下のようにGDirectionsコンストラクタの第2引数にdivエレメントを渡すとルートの詳細を自動的に表示してくれます。
- directions
= new GDirections(map, document.getElementById("route"));
divを一つ用意するだけでルートの詳細が出るのはうれしいですね。
これが見やすいのかどうかは微妙ですが。
3, 4の部分はloadFromWaypointsの代わりにloadを使った、文字列をまとめて一つ渡すだけの方法もありますが、コードの組みやすさや座標を組み込むことを考えると、loadFromWaypointsだけ覚えておけばいいんじゃないかなーと言う気がします。
- directions.load(
"from: 東京都文京区本郷3丁目 to: 東京ドーム", { locale: "ja", travelMode: G_TRAVEL_MODE_DRIVING // 交通手段 } - );
ルート検索のAPIについての質問 [Google-Maps-API-Japan]
また、このルート検索機能の仕様として、検索を実行すると開始地点・中継地点・到着地点に緑色のGMarkerが必ずaddOverlayされてしまいます。
自分で生成したマーカーをドラッグさせて開始地点・終了地点を決めるようなスクリプトを作ろうとすると、コイツが邪魔をしてうまくクリック出来なくなってしまうので注意しましょう。
本家にそれをうまく回避したデモがありました。
↓
http://esa.ilmari.googlepages.com/draggabledir.htm
なんにせよ使いどころの多い機能だと思いますので、今後も注目していきたいですね。
トラックバックURI
最近の記事
システム開発エンジニア募集! [2012年02月03日 : 小林有佳]
OpenVPNで細々便利な設定 [2012年01月31日 : 門脇優児]
【iOS】Viewの開発・デバッグに役立つ色々 [2012年01月23日 : 中川善樹]
PHPDocumentorの利用方法まとめ [2012年01月19日 : 笹亀弘]
Google Chart Toolsを使ってサイトマップを描こう! [2011年12月21日 : 志田仁美]
stumpwm設定v2 [2011年12月19日 : 門脇優児]
Mashup Awards 7の授賞式が行われました [2011年12月16日 : 中川善樹]
社員旅行に行きました [2011年12月12日 : 大橋寛子]
iCloud風のアイコンを作成する(Fireworks) [2011年12月07日 : 和田記光]
iScroll4でネイティブに近いスマホ向けHTMLページを作成する [2011年12月02日 : 松田惇]













コメントフォーム