私は JavaScript Google Map API (Version3) に取り組んでおり、より正確には逆地理位置情報に取り組んでいます。公式ドキュメントの助けを借りて、リバース ジオコーディングの実行に成功し、緯度と経度の座標に対応する住所を見つけました。
しかし、アドレスにバインドされた名前に到達する方法が見つかりません。出来ますか?どのように実行できますか?
ありがとうございます。
カミーユ。
私は JavaScript Google Map API (Version3) に取り組んでおり、より正確には逆地理位置情報に取り組んでいます。公式ドキュメントの助けを借りて、リバース ジオコーディングの実行に成功し、緯度と経度の座標に対応する住所を見つけました。
しかし、アドレスにバインドされた名前に到達する方法が見つかりません。出来ますか?どのように実行できますか?
ありがとうございます。
カミーユ。
実際にループして、返されたデータを実際に読み取り/ループするための小さなスクリプトをこれらの時点で見つけたものを複数回チェックする必要があります(PHPの場合):
<?php
$data = json_decode(file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=46.1124,1.245&sensor=true"));
if($data->status == "OK") {
if(count($data->results)) {
foreach($data->results as $result) {
echo $result->formatted_address . "<br />";
}
}
} else {
// error
}
?>
ドキュメントに基づいて:
リバース ジオコーダが複数の結果を返したことに注意してください。...等
と:
一般に、アドレスは最も具体的なものから最も具体的でないものへと返されます。より正確な住所が最も顕著な結果です...など
必要なものを取得するには、最初の結果のみが必要です (または、少なくともそこで検索する必要があり$data->results[0]->ます。そのため、型
を
読み、それに基づいて、必要な結果が存在するかどうかを確認できます。
<?php
$data = json_decode(file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=46.1124,1.245&sensor=true"));
if($data->status == "OK") {
if(count($data->results)) {
foreach($data->results[0]->address_components as $component) {
if(in_array("premise",$component->types) || in_array("route",$component->types) || in_array("park",$component->types)) {
echo $component->long_name . "<br />";
}
}
}
} else {
// error
}
?>
Google Map API には、プレイス ルックアップ API のベータ リリース バージョンがあります。これがあなたが探しているものだと思います。基本的に、緯度/経度または住所を渡すと、Google はその住所から地名への逆引きを行います (データベースにある場合)。
ドキュメントを参照してください: http://code.google.com/apis/maps/documentation/places/
Places API のイントロからの抜粋:
Places API には、関連する 2 つの基本的なタイプのリクエストがあります。プレイス検索リクエストとプレイス詳細リクエストです。Place Search リクエストは、提供された場所周辺の「場所」のリクエストを開始します。多くの場合、ジオロケーションを介して提供されます (ユーザーが現在位置している場所または近くの場所を検索できるようにするため)。Places API は、指定された場所の近くにある候補の場所のリストを返します。ユーザーは、元の検索で返された特定のエンティティに対して Place Details リクエストを開始できます。