2015-06-28 87 views
1

我試圖顯示與集羣的標記,用戶可以看到鼠標懸停在集羣內的標記的名稱的地圖,之前點擊放大。顯示名稱的onmouseover

這裏我一直在努力的例子如下:http://jsfiddle.net/zvLd54de/4/

意圖是倫敦的onmouseover應該顯示四個倫敦居民的名字,而巴黎的onmouseover應該顯示三個居住在巴黎的人的名字。

到目前爲止,我只設法要麼

  • 顯示的名字,但對於所有的地圖視圖內
  • 顯示對象集羣中的標記,而不是名字

Javascript

markers.on('clustermouseover', function (a) { 

    var inBounds = [], 
     bounds = map.getBounds(); 
    children = a.layer.getAllChildMarkers(); 

    markers.eachLayer(function (marker) {  
     if (bounds.contains(marker.getLatLng())) { 
      inBounds.push(marker.options.title); 
     } 
    }); 

    document.getElementById('names').innerHTML = inBounds.join('\n'); 
    document.getElementById('children').innerHTML = children.join('\n');  
}); 

markers.on('clustermouseout', function (a) { 
    document.getElementById('names').innerHTML = (''); 
    document.getElementById('children').innerHTML = (''); 
}); 

我認爲我需要修改if語句,以便它只推送集羣中的名稱,但還沒有發現如何。

如果有人有關於如何做到這一點的想法,我將不勝感激。

回答

1

經過一番嘗試,我找到了一個解決方案。

更新的示例可以在http://jsfiddle.net/zvLd54de/5/查看。

我希望這對其他人也有用。

markers.on('clustermouseover', function (a) { 

    children = a.layer.getAllChildMarkers(); 
    var names = []; 

    for (i = 0; i < children.length; i++) { 
     names.push(children[i].options.title); 
    } 

    document.getElementById('names').innerHTML = names.join('\n'); 
});