Download
- Overview
- Documents
- Demos
User Rating: 2.6/5 ( 2 votes)
Your Rating:
The library creates and manages per-zoom-level clusters for large amounts of markers. This is a V3 implementation of the V2 MarkerClusterer.
Usage
To use a marker clusterer, create a MarkerClusterer object. In the simplest case, just pass a map to it.
var center = new google.maps.LatLng(37.4419, -122.1419); var options = { 'zoom': 13, 'center': center, 'mapTypeId': google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map"), options); var mc = new MarkerClusterer(map);
You may also specify a number of options to fine-tune the marker manager's performance. These options are passed via a object.
var center = new google.maps.LatLng(37.4419, -122.1419); var options = { 'zoom': 13, 'center': center, 'mapTypeId': google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map"), options); var mcOptions = {gridSize: 50, maxZoom: 15}; var mc = new MarkerClusterer(map, [], mcOptions);
Once you create a marker cluster, you will want to add markers to it. MarkerClusterer supports adding markers using the addMarker() and addMarkers()method or by providing a array of markers to the constructor:
var center = new google.maps.LatLng(37.4419, -122.1419); var options = { 'zoom': 13, 'center': center, 'mapTypeId': google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map"), options); var mcOptions = {gridSize: 50, maxZoom: 15}; var markers = [...]; // Create the markers you want to add and collect them into a array. var mc = new MarkerClusterer(map, markers, mcOptions);
A Simple MarkerClusterer Example:
This example will show 100 markers on map.
var center = new google.maps.LatLng(37.4419, -122.1419); var options = { 'zoom': 13, 'center': center, 'mapTypeId': google.maps.MapTypeId.ROADMAP }; var map = new google.maps.Map(document.getElementById("map"), options); var markers = []; for (var i = 0; i < 100; i++) { var latLng = new google.maps.LatLng(data.photos[i].latitude, data.photos[i].longitude); var marker = new google.maps.Marker({'position': latLng}); markers.push(marker); } var markerCluster = new MarkerClusterer(map, markers);
class MarkerClusterer
This class extends google.maps.OverlayView.
Constructor
Constructor | Description |
---|---|
MarkerClusterer(map:google.maps.Map, opt_markers:Array.<google.maps.Marker>, opt_options:Object) | A Marker Clusterer that clusters markers. |
Methods
Methods | Return Value | Description |
---|---|---|
addMarker(marker:google.maps.Marker, opt_nodraw:boolean) | None | Adds a marker to the clusterer and redraws if needed. |
addMarkers(markers:Array.<google.maps.Marker>, opt_nodraw:boolean) | None | Add an array of markers to the clusterer. |
clearMarkers() | None | Clears all clusters and markers from the clusterer. |
getCalculator() | function(Array|number) | Get the calculator function. |
getExtendedBounds(bounds:google.maps.LatLngBounds) | google.maps.LatLngBounds | Extends a bounds object by the grid size. |
getGridSize() | number | Returns the size of the grid. |
getMap() | google.maps.Map | Returns the google map that the clusterer is associated with. |
getMarkers() |
Array. |
Returns the array of markers in the clusterer. |
getMaxZoom() | number | Gets the max zoom for the clusterer. |
getStyles() | Object | Gets the styles. |
getTotalClusters() | number | Returns the number of clusters in the clusterer. |
getTotalMarkers() |
Array. |
Returns the array of markers in the clusterer. |
isZoomOnClick() | boolean | Whether zoom on click is set. |
redraw() | None | Redraws the clusters. |
removeMarker(marker:google.maps.Marker) | boolean | Remove a marker from the cluster. |
resetViewport() | None | Clears all existing clusters and recreates them. |
setCalculator(calculator:function(Array|number)) | None | Set the calculator function. |
setGridSize(size:number) | None | Returns the size of the grid. |
setMap(map:google.maps.Map) | None | Sets the google map that the clusterer is associated with. |
setMaxZoom(maxZoom:number) | None | Sets the max zoom for the clusterer. |
setStyles(styles:Object) | None | Sets the styles. |