こんにちは、Google マップ API v3 ジオコーディング Web サービスを使用して、City+Province+Country に住所が存在するかどうかを確認しようとしています。Google が常に何かを返すのを見てきました。たとえば、既存の住所を検索しようとすると、"Colon 100, Córdoba, Córdoba, Argentina" を使用: http://maps.googleapis.com/maps/api/geocode/json?address=Colon%20100%20, C%C3%B3rdoba,C%C3%B3rdoba,Argentina&sensor=false何かを得ました。しかし、「nonexistingaddres 2、Córdoba、Córdoba、Argentina」のような存在しないアドレスを見つけようとすると、http://maps.googleapis.com/maps/api/geocode/json?address=nonexistingaddress%20100,C%を使用しますC3%B3rdoba,C%C3%B3rdoba,アルゼンチン&sensor=false結果も出ます。Googleの応答を分析するだけで、「存在しない」通りが存在するかどうかを確認する方法がわかりません。モノさん、よろしくお願いします。
4276 次
2 に答える
3
この質問が古いことは知っていますが、まだ探している人のためにとにかく答えると思いました。私の経験では、これを処理する最善の方法は、API 応答を確認することです。座標を見つけるためだけに住所の確認にGoogleマップを使用していませんが、誰かが提供した住所が有効でない場合(少なくともGoogleに関する限り)、使用可能なものを返さないため、適切に失敗する必要がありますアプリが消費する緯度/経度。
PHP では、次のようなことを行います。
public static function latlong($location) {
if ($location!='') {
try {
$json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?address='.urlencode($location));
$parsedjson = json_decode($json, true);
if (key_exists(0,$parsedjson['results'])) {
$lat_long_array = $parsedjson['results'][0]['geometry']['location'];
return $lat_long_array;
} else {
return false;
}
} catch (Exception $e) {
//echo 'Caught exception: ', $e->getMessage(), "\n";
return false;
}
}
}
ここにたどり着いた Google 社員の役に立てば幸いです。
于 2014-12-17T22:28:37.683 に答える
2
Google Maps API v3 ジオコーダは住所バリデータではありません。その目的は、特定の (郵便) 住所の最適な座標を見つけることです。
それは人々がそれを使おうとするのを止めません
于 2013-01-29T16:14:43.823 に答える