2011-07-28 9 views
0

私は以前に何度も解決されてきたかなり一般的な問題に取り組んでいると確信しています。Googleマップ - ジオコード100で表示ポートのアドレス指定とキャリブレーションを行いますか?

私のWebアプリケーションは、別のサービスの建物の約100行分の住所を要求します。私は今これらのすべてをGoogleマップ(apiバージョン3)でgmarkersとしてプロットする必要があります。ビューポートを調整してすべてのgmarkerを表示する必要があります。つまり、地図中心と適切なズーム値が決まります。

私はGoogle MapsのAPIからいくつかのコードを発見し、一点をプロットするために、それを微調整:

function codeAddress() { 
    var address = '1 Yonge Street, Toronto, ON'; 
    geocoder.geocode({ 'address': address}, geocodeCallBack); 
    } 

    function geocodeCallBack(results, status) 
    { 
     if (status == google.maps.GeocoderStatus.OK) { 
     map.setCenter(results[0].geometry.location); 
     var marker = new google.maps.Marker({ 
      map: map, 
      position: results[0].geometry.location 
     }); 
     } else { 
     alert("Geocode was not successful for the following reason: " + status); 
     } 

    } 

はしかし、私は100回の、非同期ジオコーディングの呼び出しを行うことが遅くなる可能性があることを疑います。誰にでも私が必要とするものを達成するための最善の方法を提案していますか?

答えて

1

ページが読み込まれるたびに100ジオコードを実行するには数十秒かかりますので、事前にジオコーディングをお勧めします。

住所が常に同じか、ほとんど変更されない場合は、ジオコーディングサービス(http://code.google.com/apis/maps/documentation/javascript/services.html)を使用して住所を事前にジオコードできます。 Maps APIマップにしか表示されていない限り、結果のLat/Lngをサーバーに一時的に保存してください。

一時的には、これらのLat/Lngを定期的に更新する必要があります(30日に1回など)。

(詳細については、10.1.3bを参照してください。http://code.google.com/apis/maps/terms.html

関連する問題