Home > PHPのお話 > Geocoding - 住所から緯度経度を検索

Geocoding - 住所から緯度経度を検索

今更っちゃ今更ですが、住所から経緯度を取得する方法

■Googleで取得する場合
//====================================================
// 住所から経緯度取得(Google)
function get_geocode_google(){
  $Addr = "検索したい住所";
  $Key = "GoogleMap API KEY";
  $GoogleMapUrl = "http://maps.google.com/maps/geo?";

  // 住所をUTF-8、URIエンコード
  $Addr = mb_convert_encoding($Addr, "UTF-8", "auto");
  $Addr = urlencode($Addr);

  //リクエストのパラメーター
  $request = "&q=" . $Addr . "&key=" . $Key . "&output=xml";

  //XMLを一度バッファーに取り込む
  $Url = $GoogleMapUrl.$request;
  $Contents = file_get_Contents($Url);

  //不要文字コードを削除
  $Search = array("\0", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x0b", "\x0c", "\x0e", "\x0f");
  $Contents = str_replace($Search,"", $Contents);

  //バッファーをXMLとして扱う
  $xml = simplexml_load_string($Contents);

  foreach($xml->Response as $res){
    $code = $res->Status->code;
    //正常に返された場合
    if($code == '200'){
     $coordinates $res->Placemark->Point->coordinates;
    }
  }

  //longitude:経度 latitude:緯度
  list($lat,$lon) = explode(",",$coordinates);
}


■Yahooで取得する場合
//====================================================
// 住所から経緯度取得(YAHOO)
function get_geocode(){
  $Addr = "検索したい住所";
  $APIKEY = "Yahoo API KEY";
  $YahooMapUrl = "http://api.map.yahoo.co.jp/LocalSearchService/V1/LocalSearch";

  // 住所をUTF-8、URIエンコード
  $Addr = mb_convert_encoding($Addr, "UTF-8", "auto");
  $Addr = urlencode($Addr);

  //リクエストのパラメーター
  $request = "?appid=" .$APIKEY. "&p=" . $Addr;

  //XMLを一度バッファーに取り込む
  $Url = $YahooMapUrl.$request;
  $Contents = file_get_Contents($Url);

  //不要文字コードを削除
  $Search = array("\0", "\x01", "\x02", "\x03", "\x04", "\x05", "\x06", "\x07", "\x08", "\x0b", "\x0c", "\x0e", "\x0f");
  $Contents = str_replace($Search,"", $Contents);

  //バッファーをXMLとして扱う
  $xml = simplexml_load_string($Contents);

  foreach($xml->Item as $res){
    //longitude:経度 latitude:緯度
    $lat = $res->DatumTky97->Lat;
    $lon = $res->DatumTky97->Lon;
  }
}


どちらの場合も大して変わりないですね。
ポイントは、リクエストをUFT-8にエンコードしてURIエンコードをすれば良いだけですね(´∀`)


取得した経緯度から実際に地図を表示させるには・・・。
まぁ、次回に。眠いッス( ´O)η
このアイテムは閉鎖されました。このアイテムへのコメントの追加、投票はできません。

Trackback:No Trackbacks

TrackBack URL for this entry
Sorry, no trackback pings are accepted.
Listed below are links to weblogs that reference
Geocoding - 住所から緯度経度を検索 from 世の中いろいろ
トラックバック
このエントリにトラックバックはありません
このトラックバックURLを使ってこの記事にトラックバックを送ることができます。 もしあなたのブログがトラックバック送信に対応していない場合にはこちらのフォームからトラックバックを送信することができます。.

Home > PHPのお話 > Geocoding - 住所から緯度経度を検索

Search
Feeds

Page Top