0

gmap V3 のジオコードでいくつかの住所をジオコーディングする必要があります。最初は1つだけで試してみましたが、うまくいきましたが、Jsonにある複数のアドレスを渡すと、最初のアドレスの座標しか表示されません。

私はこのコードを試しました:

$(document).ready(function() {
getcoords(datos);                      

});





 function getcoords(datos){

 Locgoogle = new google.maps.Geocoder();
 var dataJson = eval(datos);



        for(i=0;i<10;i++){  
            var dir=dataJson[i].dir ; 
            var id=dataJson[i].id   ;
            alert(dir);

            setTimeout(function() {GoogleCall(dir,id)}, 30000);

        }


 }




function GoogleCall(dir, id) {  

 Locgoogle.geocode({
        address: dir
    }, function(results,status) {
        if (status == google.maps.GeocoderStatus.OK) {
        var lat1 = results[0].geometry.location.lat();
        var lng1 = results[0].geometry.location.lng();
        $("#testDiv").append("latitudeGoogle:" + lat1 + "<p>longitudeGoogle:" + lng1 + "</p>");
        } else {
        alert("Geocode was not successful for the following reason: " + status);
        }
    });
 }

そして、それは私にエラーを与えませんが、同じ座標を11回表示します...

4

1 に答える 1

0

2 年前、Google は Maps API に非常に厳しいポリシーを導入しました。(正確に言うと、V3 のポリシーは - まだアクティブです - V2 の方が柔軟です。) Geocoding API は特に厳格です。

Google Geocoding API の使用には、1 日あたり 2,500 件のジオロケーション リクエストのクエリ制限が適用されます。[...] さらに、サービスの悪用を防ぐためにリクエスト レート制限を適用します。[...] 注: Geocoding API は、Google マップと組み合わせてのみ使用できます。結果を地図上に表示せずにジオコーディングすることは禁止されています。

https://developers.google.com/maps/documentation/geocoding/#Limits

ただし、Google には、それに対処する方法を推奨する Web ページがあります。

https://developers.google.com/maps/articles/geocodestrat

1 つのセクションで述べたように、1 つの戦略は明らかにキャッシングです。もう 1 つは、次の要求まで待機しています。

非常に多くのリクエストを行う必要があり、商用パッケージを購入する余裕がない場合は、API を変更する必要があるかもしれません。私は OSM API で良い経験をしました: http://wiki.openstreetmap.org/wiki/Nominatim

少なくとも、リバース ジオコーダーは非常にうまく機能しました。ajax()jQuery の関数を使用してリクエストを作成し、独自の適切なエラー処理を行うことができます。OSM のレート制限は非常に緩やかですが、サーバーの負荷が高いなどの理由で一部のリクエストが失敗する場合があります。

于 2012-10-19T05:00:47.327 に答える