iff*_*iff 6 javascript google-maps google-maps-markers markerclusterer
我将标记放入群集中:
var markerClusterer = new MarkerClusterer(map, markers, {
zoomOnClick : false,
maxZoom : 13,
gridSize : 100
});
Run Code Online (Sandbox Code Playgroud)
我有15个标记.其中10个在地图中成簇.如何确定标记是否在群集中.
var clusteredMarkers = markerClusterer.getTotalMarkers();
for(i = 0; i < clusteredMarkers.length; i++) {
if(isInCluster((clusteredMarkers[i])) {
clusteredMarkers[i].infobox.close();
}
}
Run Code Online (Sandbox Code Playgroud)
如何定义像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...
Run Code Online (Sandbox Code Playgroud)
显然,在放大,缩小或任何其他视口更改后,标记的状态可能会发生变化,因此您必须在视口更改后重新检查.
| 归档时间: |
|
| 查看次数: |
4860 次 |
| 最近记录: |