1

こんにちは、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の応答を分析するだけで、「存在しない」通りが存在するかどうかを確認する方法がわかりません。モノさん、よろしくお願いします。

4

2 に答える 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 に答える