住所や駅名などから緯度経度を取得する

住所や駅名などの情報から緯度経度を取得するには、GoogleのサービスGeocodingで取得することができます。

Geocoding

プログラムなどで使用する場合はAPIが公開されているので、次のようなURLにリクエストを送るとXML形式でレスポンスが返ってきます。

http://www.geocoding.jp/api/?v=1.1&q=【住所などをURLエンコードしたもの】

PHPで単にXMLを取得するサンプルコード

<?php
$query = "東京都千代田区千代田1-1-1";
$query = urlencode($query);
$url = "http://www.geocoding.jp/api/";
$url.= "?v=1.1&q=".$query;

$fp = fopen($url, "r");
while(!feof($fp)) {
  $line.= fgets($fp);
}
fclose($fp);

echo $line;
?>

このレスポンスは次です。

<?xml version="1.0" encoding="UTF-8" ?>
<result>
<version>1.1</version>
<address>東京都千代田区千代田1-1-1</address>
<coordinate>
<lat>35.683851</lat>
<lng>139.753973</lng>
<lat_dms>35,41,1.864</lat_dms>
<lng_dms>139,45,14.303</lng_dms>
</coordinate>
<url>http://www.geocoding.jp/?q=%E6%9D%B1%E4%BA%AC%E9%83%BD%E5%8D%83%E4%BB%A3%E7%94%B0%E5%8C%BA%E5%8D%83%E4%BB%A3%E7%94%B01-1-1</url>
<needs_to_verify>yes</needs_to_verify>
<google_maps>東京都千代田区千代田1−1</google_maps>
</result>

PHPで緯度経度を表示させるサンプルコード

<?php
$query = "東京都千代田区千代田1-1-1";
$query = urlencode($query);
$url = "http://www.geocoding.jp/api/";
$url.= "?v=1.1&q=".$query;

$fp = fopen($url, "r");
while(!feof($fp)) {
  $line.= fgets($fp);
}
fclose($fp);

$xml = simplexml_load_string($line);
echo "緯度DEG形式".$xml->coordinate->lat."<br />";
echo "経度DEG形式".$xml->coordinate->lng."<br />";
echo "緯度DMS形式".$xml->coordinate->lat_dms."<br />";
echo "経度DMS形式".$xml->coordinate->lng_dms."<br />";
?>
DEG形式 Degreeの略称で、緯度経度を単位"度"のみで表現したもの
DMS形式 緯度経度を度分秒.秒で表現したもの

関連記事

スポンサーリンク

CHAR_LENGTH関数 文字列長を求める

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る