Tengo problemas para agregar la funcionalidad de marcador de clúster a mi mapa. Lo que quiero es usar un icono personalizado para mis marcadores y cada marcador tiene su propia ventana de información que quiero poder editar.Agregando clusterer de marcador simple al mapa de google
Lo logré, pero ahora tengo problemas para agregar la funcionalidad de la biblioteca del clúster marcador. Leí algo sobre agregar marcadores a la matriz, pero no estoy seguro de qué significa exactamente. Además, todos los ejemplos con matriz que he encontrado, no tengo ventanas de información y busco el código, no encontré la forma adecuada de agregarlos.
Aquí está mi código (en su mayoría de Geocodezip.com):
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js"></script>
<style type="text/css">
html, body { height: 100%; }
</style>
<script type="text/javascript">
//<![CDATA[
var map = null;
function initialize() {
var myOptions = {
zoom: 8,
center: new google.maps.LatLng(43.907787,-79.359741),
mapTypeControl: true,
mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU},
navigationControl: true,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var mcOptions = {gridSize: 50, maxZoom: 15};
var mc = new MarkerClusterer(map, [], mcOptions);
google.maps.event.addListener(map, 'click', function() {
infowindow.close();
});
// Add markers to the map
// Set up three markers with info windows
var point = new google.maps.LatLng(43.65654,-79.90138);
var marker1 = createMarker(point,'Abc');
var point = new google.maps.LatLng(43.91892,-78.89231);
var marker2 = createMarker(point,'Abc');
var point = new google.maps.LatLng(43.82589,-79.10040);
var marker3 = createMarker(point,'Abc');
var markerArray = new Array(marker1, marker2, marker3);
mc.addMarkers(markerArray, true);
}
var infowindow = new google.maps.InfoWindow(
{
size: new google.maps.Size(150,50)
});
function createMarker(latlng, html) {
var image = '/321.png';
var contentString = html;
var marker = new google.maps.Marker({
position: latlng,
map: map,
icon: image,
zIndex: Math.round(latlng.lat()*-100000)<<5
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString);
infowindow.open(map,marker);
});
}
//]]>
</script>
@ kjy112 Gracias por su respuesta. Cambié mi código como lo recomendó, pero aún así solo hay 3 iconos personalizados visibles. Cuando alejo, nada cambia, no hay un icono de clúster. Actualicé mi pregunta con el código actual. – take2
@ take2 ¿cómo está configurando el clúster? – kjy112
@ kjy112 No estoy seguro de lo que quieres decir. Con var mcOptions = {gridSize: 50, maxZoom: 15}; var mc = new MarkerClusterer (map, [], mcOptions); var markerArray = new Array (marcador1, marcador2, marcador3); mc.addMarkers (markerArray, true); – take2