[英]MarkerClusterer is marker in cluster?
我將標記放入群集中:
var markerClusterer = new MarkerClusterer(map, markers, {
zoomOnClick : false,
maxZoom : 13,
gridSize : 100
});
我有15個標記。 其中10個在地圖中成簇。 如何確定標記是否在群集中。
var clusteredMarkers = markerClusterer.getTotalMarkers();
for(i = 0; i < clusteredMarkers.length; i++) {
if(isInCluster((clusteredMarkers[i])) {
clusteredMarkers[i].infobox.close();
}
}
如何定義像isInCluster(marker)這樣的函數,信息框只在標記中打開,不在任何集群中(即5個信息框必須可見)?
如果標記的地圖位於群集中, MarkerClusterer
會將標記的地圖設置為null
,以便它不再顯示在地圖上。 然后MarkerClusterer
將標記的地圖設置回map
只要它不再在群集中。 您可以嘗試檢查每個標記:
var mapOptions = { // Notice that mapZoom is not set
center: new google.maps.LatLng( 19, 19 ),
mapTypeId: google.maps.MapTypeId.ROADMAP };
map = new google.maps.Map( document.getElementById( "map_canvas" ), mapOptions );
var markerClusterer = new MarkerClusterer( map, markers, { ... });
//Whenever the map completes panning or zooming, the function will be called:
google.maps.event.addListener( map, "idle", function() {
for ( var i = 0; i < markers.length; i++ ) {
var mrkr = markers[i];
if ( mrkr.getMap() != null ) {
mrkr.infobox.open();
}
else {
mrkr.infobox.close();
}
}
}
//Now that map, markerClusterer, and the "idle" event callback are in place,
//set the zoom, which will trigger the "idle" event callback
//after the zoom activity completes,
map.setZoom( 19 ); //Or whatever is appropriate
//Thereafter, the callback will run after any pan or zoom...
顯然,在放大,縮小或任何其他視口更改后,標記的狀態可能會發生變化,因此您必須在視口更改后重新檢查。
看看這個例子http://88.196.132.133/markerclusterer/ ,它與信息框無法正常工作。 所有標記(如果它們不在簇中)必須始終顯示信息框。 問題還在於加載頁面時所有信息框都會打開一會兒。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.