1

私はGoogleマップを使用して、郵便番号の配列からマーカーを配置していますが、配置するのはそれらの約10%にすぎません。残りはnullの結果を返します。問題が見つかりません。これが私のコードです。

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&amp;language=en"></script>
<script type="text/javascript">     
  var latlng = new google.maps.LatLng(37.09024, -95.712891);
  var map = new google.maps.Map(document.getElementById('pledge-map'), {
    zoom: 4,
    center: latlng,
    mapTypeId: google.maps.MapTypeId.ROADMAP
  });               
  var geocoder = new google.maps.Geocoder();
  var locations = <?php echo(json_encode($zips)); ?>        
  for (var i = 0; i < locations.length; i++) {                
    geocoder.geocode( { 'address': locations[i]}, function(results, status) {
      if (status == google.maps.GeocoderStatus.OK) {
        var marker = new google.maps.Marker({
            position: results[0].geometry.location,
            map: map
          });
      }
    });     
  }
</script>

locationは、郵便番号の配列です。

locations =["20190","22192","20148","06078","95136","84120","53066","53404","48323","52404","72762","89701","39667","78073","78016","76013","15613","84010","77662","77407","30127","94566","14625","45629","27406","27289","02339","01864","39116","77079","10954","37683","72801","19341","14580","64133","29579","08527","32258","33433","60093","76691","78261","77095","19426","10469","92038","85208","67220","61031","85706","72223","21222","66224","34242","30224","56232","32746","08558","72712","14209","43015","52722","32779","33518","33578","60565","11239","17007","60623","77469","20165","20002","36116","20769","20815","34209","02301","60025","48158","38804","30736","01803","45040","48069","07463","53018","73008","80951","70785","72065","91510","91506","67209","22408","36849"]   
4

1 に答える 1

3

ジオコーダーには、割り当てとレートの制限があります。エラーケースをチェックしていません(返されたステータスがOKでない場合のコードはありません)。

また:

  1. クォータ超過エラーコードを探し、インテリジェントに処理します(遅延を追加して再試行し、成功した場合にのみマーカーを追加します)
  2. 郵便番号をオフラインでジオコーディングして座標を保存し、それらを使用してマーカーを表示します。
于 2012-11-28T13:49:07.807 に答える