ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

KMLを読み込んでGoogleマップに表示させてみた

昨日の続きです。

注: Geocoding APIGoogle マップ上の結果表示と組み合わせる場合にのみ使用できます。地図に表示せずにジオコーディングの結果だけを利用することは禁止されています。許可されている使用方法の詳細については、Maps API 利用規約のライセンス制限をご覧ください。

https://developers.google.com/maps/documentation/geocoding/?hl=ja#Limits

ということで、実はGoogle Geocoding APIって、表示結果をGoogleの提供する地図に表示させることを前提にAPIを提供していて、住所と座標を変換して別のことに使うのは規約違反なんだそうです。実験的なこととはいえ規約違反のままほったらかしておくのはまずいと思ったので、なんとか地図を表示させて、取得した座標を地図に表示させることにしました。ただ、これだけだとなんだかなと思ったので、適当なKMLを読み込んで一緒に表示させてみることにしました。

昨日と同じURLです。

KMLを表示させるやり方

これまた結構簡単で、大まかな手順は

  • KMLをロードしてレイヤーを作成する
  • 地図にかぶせる

の2段構えです。上の例だと、

url = "https://maps.google.com/maps/ms?dg=feature&ie=UTF8&authuser=0&msa=0&output=kml&msid=202382743250343077364.0004c21a307a9ddfd5cf9"
deacLayer = new google.maps.KmlLayer { url: url }
deacLayer.setMap window.map

の部分がそれにあたります。

どちらかというと地図そのものを表示させるのにだいぶ手間がかかりました。実はドキュメントに書いてあったのですが、高さと幅はちゃんと定義してやる必要があります。そうでないと0px×0pxとなってしまうことでしょう。少なくとも高さ0はほぼ確実です。