1

使用此數據簇標記谷歌地圖使用地理編碼

var data = { 
    'address': [ 
    { 
     'address': '7970 GLENTIES Ln' 
    }, 
    { 
     'address': '8022 Caminito Mallorca' 
    }, 
    { 
     'address': '2750 Wheatstone St # 26' 
    }, 
    { 
     'address': '335 49th St' 
    } 
    ] 
}; 

我設法標記他們,但我無法聚集他們。低於我使用的代碼。

var markerArray = []; 
    function initialize() { 
    geocoder = new google.maps.Geocoder(); 
    var center = new google.maps.LatLng(37.4419, -122.1419); 

    var map = new google.maps.Map(document.getElementById('map'), { 
     zoom: 3, 
     center: center, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }); 
    var address; 
    var markers = []; 
    for (var level in data) { 
     for (var i = 0; i < data[level].length; i++) { 
     // var dataPhoto = data.photos[i]; 
      var dataAdd = data[level][i]; 
     // alert(dataAdd.address); 
     geocoder.geocode({ 'address': dataAdd.address}, function(results){    
      var marker = new google.maps.Marker({ 
       map: map, 
       position: results[0].geometry.location 
      }); 
     markerArray[i] = marker;   
     }); 
     } 
    } 
    var markerCluster = new MarkerClusterer(map, markerArray); 
    } 

    google.maps.event.addDomListener(window, 'load', initialize); 

我該如何羣集它們? MarkerClusterer似乎不工作,或者我不知道。

回答

2

由於地理編碼功能是異步的,因此您需要在創建標記之前創建標記聚簇器。

你應該做的是在開始地理編碼之前創建MarkerClusterer,然後添加到標記數組中而不是添加到MarkerClusterer中。

+0

即時通訊有點混淆你想要我做什麼。你能給我一個這樣的例子嗎? – GianFS

+0

更新:我管理羣集他們,但問題再次發生谷歌地圖限制使用goecode「超過查詢限制」。希望能幫助我這個人 – GianFS

+0

每次用戶加載頁面時,都不應該對相同的數據進行地理編碼。如果您的數據不會經常更改,則需要對其進行一次地理編碼並存儲一段時間。這是可以接受的服務條款,你不能永遠保持它。 – skarE