楽天トラベル情報API + Google Maps API
楽天トラベル情報API(以下、トラベルAPI)でしらべた宿泊施設の情報をGoogle Maps API(以下、Maps API)をつかって表示してみました。
コーディングの内容は、次のとおりです。
(1)トラベルAPIで、空室のある宿泊施設の情報を取得する
(2)取得した情報をMaps APIで利用できるようにする
宿泊施設の場所を示す緯度、経度の単位系がそれぞのAPIで異なるので、変換が必要です。
Maps APIで表示する宿泊施設の情報をXML形式で出力する
(3)出力したXMLファイルを読み込んで、Google Maps上に宿泊施設を表示する
(1)トラベルAPIで、空室のある宿泊施設の情報を取得する
「楽天トラベル情報APIを使って空室情報を検索してみよう (Ruby編)」を参考にしてください。
(2)取得した情報をMaps APIで利用できるようにする
Maps APIの緯度経度は世界測地系で度単位
トラベルAPIの緯度経度は日本測地系で秒単位
となっています。トラベルAPIで取得した緯度、経度をMaps APIの緯度、経度系に変換するには、
3600で割り算をしてから、次の単位変換を行います。
<日本測地系⇒世界測地系>
世界測地系緯度 = 日本測地系緯度 - 0.00010695 * 日本測地系緯度 + 0.000017464 * 日本測地系経度 + 0.0046017
世界測地系経度 = 日本測地系経度 - 0.000046038 * 日本測地系緯度 - 0.000083043 * 日本測地系経度 + 0.010040
○「GeoTranslation.rb」
変換プログラムです。
次に、以下のような形式のXMLで宿泊施設の情報を出力します。
○「marker.xml」
(3)出力したXMLファイルを読み込んで、Google Maps上に宿泊施設を表示する
Maps APIでデータファイルをよ見込んで、Map上に宿泊施設の場所を示すマーカを表示します。
クッリクするとホテル名が表示されます。また、ホテル名は、詳細情報へのリンクとなっています。
○「index.html」
サンプルはこちらです。
東京駅周辺1km以内にある宿泊施設をトラベルAPIで検索した結果を表示したものです(情報は変化する場合があるので、同じように検索してもマーカの位置や数が異なる場合があります)。