今回は座標データから住所を取得する方法を紹介します。
実は位置情報を返してくれる便利なAPIサービス『Yahoo!ローカルサーチAPI』というものがあります。
ローカルサーチのサービスを使うには先に「YAHOO!アプリケーションID」の
取得が必要になりますので下記URLから取得を行なってください。
http://e.developer.yahoo.co.jp/webservices/register_application
住所取得
下記で示す方法は正確には座標から一番近いスポットの住所の取得方法になります。
近くにスポットがない場所だとずれる事もあり、また号まで詳しい住所が出ない事が多いです。
「○○市の○丁目にいる」ぐらいの使い方が良いでしょう。
$url = "http://api.map.yahoo.co.jp/LocalSearchService/V1/LocalSearch"; $url .= "?appid={$applicationId}"; // アプリケーションID $url .= "&lat=35.65716694"; // 緯度 $url .= "&lon=139.732451945"; // 経度 $url .= "&dist=1"; // 対象範囲 $url .= "&n=1"; // 取得件数 $url .= "&category=address"; //住所カテゴリ $url .= "&AddressLevel=6"; //住所取得レベル. $param = array( 'complexType' => "object", ); $xml = new XML_Unserializer($param); $xml->unserialize($url, TRUE); $data = $xml->getUnserializedData();
XMLの出力結果
<?xml version="1.0" encoding="UTF-8" ?> <LocalSearchResult xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:yahoo:jp:maps http://map.yahooapis.jp/LocalSearchService/V1/LocalSearchResponse.xsd"> <Count>6199</Count> <ViewCount>1</ViewCount> <Query /> <Item> <Category>Address</Category> <Title>東京都港区六本木6丁目10-1</Title> <Address>東京都港区六本木6丁目10-1</Address> <AddressLevel>6</AddressLevel> <DatumTky97> <Lat>35.65716694</Lat> <Lon>139.73245194</Lon> </DatumTky97> <DatumWgs84> <Lat>35.660405629004</Lat> <Lon>139.72922221769</Lon> </DatumWgs84> <Url /> </Item> </LocalSearchResult>
パラメータの詳しい内容は下記をご参考下さい。
http://developer.yahoo.co.jp/webapi/map/localsearch/v1/localsearch.html
※24時間中1IPアドレスにつき50000件のリクエストまでの制限ありますので
人気サイトでの使用は注意が必要です。