携帯のGPS機能を使い、近くの店舗から表示するプログラムを作りたい場合、先に店舗の座標をデータとして保持しておかなければなりません。
店舗の住所一覧のデータはあっても座標のデータも一緒にもらえるケースはあまりありません。
そこで座標を取得してデータを格納させる必要があるのですが、Google Mapをマッシュアップさせた
住所から座標を取得出来る便利なAPIを紹介します。
『Geocoding』
使い方は簡単で『http://www.geocoding.jp/api/?q={住所}』とアクセスするだけです。
XMLで以下のような内容が返ってきます。
<?xml version="1.0" encoding="UTF-8" ?> <result> <version>1.1</version> <address>東京都港区芝公園4-2-8</address> <coordinate> <lat>35.658671</lat> <lng>139.7454</lng> <lat_dms>35,39,31.216</lat_dms> <lng_dms>139,44,43.44</lng_dms> </coordinate> <url>http://www.geocoding.jp/?q=%E6%9D%B1%E4%BA%AC%E9%83%BD%E6%B8%AF%E5%8C%BA%E8%8A%9D%E5%85%AC%E5%9C%924-2-8</url> <needs_to_verify>no</needs_to_verify> <google_maps>東京都港区芝公園4丁目2−8</google_maps> </result>
プログラムでの取得例
$address = "東京都港区芝公園4-2-8"; $url = "http://www.geocoding.jp/api/?q=" . $address; $xml = simplexml_load_file($url); $lat = (string)$xml->coordinate->lat; //緯度 35.658671 $lng = (string)$xml->coordinate->lng; //経度 139.7454
APIの説明でも書かれていますがサーバーに負荷の掛かる処理ですので「XML出力までに3~5秒かかりますので、5秒間に1回以上のアクセスは避けてください。」との事です。