Home > PHP > Google Map APIを使って住所から緯度/経度を取得する

Google Map APIを使って住所から緯度/経度を取得する

  • Posted by: ZARU
  • 2008/02/01
  • PHP

Google Mapでマイマップを作って公開できるようになったり、またまたGoogle Mapが人気になってきたので少し使ってみました。今回は、住所リストはあるけど緯度/経度が分からない…。という時のためのメモ。

今回は、PHP5のSimpleXML関数を使ってGoogle Map APIから返されるXMLをパースして処理してみます。

SimpleXML関数を使って取得するソース

<?php
function getLatLng($address){
	
	$api_key = 'API KEY';
	$api_uri = 'http://maps.google.com/maps/geo?key=' . $api_key . '&output=xml&ie=UTF8&q=';
	
	//simpleXMLで読み込む
	$xml = simplexml_load_file($api_uri . urlencode($address));
	foreach($xml->Response as $res){
		$code = $res->Status->code;
		//正常に返された場合
		if($code == '200'){
			$coordinates = $res->Placemark->Point->coordinates;
		}else{
			$coordinates = FALSE;
		}
	}
	
	return $coordinates;
}
if($coordinates = getLatLng($address)){
	list($lng,$lat) = explode(',',getLatLng($address));

	print <<<EOM
<ul>
	<li>緯度:{$lat}</li>
	<li>経度:{$lng}</li>
</ul>
EOM;
}

PHP5は本当に便利になりました。PHP4だとXMLを扱うのにはライブラリを読み込んだり、自前でパース処理をしたりしなくてはならなかったけど、(ほぼ)標準でXMLをサポートしてくれています。

使っている関数は simplexml_load_file のみです。マニュアルによるとPHP5.0.xの場合、引数のURIをエスケープしてくれないので、あらかじめurlencodeしてやる必要があります。PHP5.0.1以降は自動で処理してくれます。


Comments:1

コメントフォーム:コメントはお気軽にご利用くださいませ。

画像の中に見える文字を入力してください。

ファンキーF 2008年10月16日 13:20

はじめまして、この度データベースを使わずに、
Google Maps APIで住所から緯度・経度をPHPで取得する
方法を探しています。まさにこのコードはこれにヒットしました。
しかし、コピペ&APIキー入力では動きませんでした。
画面はまっさらで何も応答がありません。
(PHP5なのでSimpleXMLはデフォルト使用出来ると思ってます)
このコードに何か魔法をかけないといけないのでしょうか?
お手数ですが、このすばらしいコードをもっとすばらしいものに
変えてみたいと思います。

回答のほど、よろしくお願い致します。

Trackbacks:0

TrackBack URL for this entry
http://blog.tofu-kun.org/mt-tb.cgi/371
Listed below are links to weblogs that reference
Google Map APIを使って住所から緯度/経度を取得する from Webプログラマー+WebデザイナーなZARU日記

Home > PHP > Google Map APIを使って住所から緯度/経度を取得する

ブログパーツ
Search
Feeds

Return to top