住所から座標を求める便利なAPI

By nakayama - 09/09/28 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

携帯の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回以上のアクセスは避けてください。」との事です。


Posted in GPS, PHP • Tags: , , Top Of Page