Estoy probando una implementación básica de marcadores de clústeres en un mapa de Google utilizando el Google Maps Utility Library v3.El objeto no tiene el método 'getPosition' al agrupar marcadores de mapas de Google (api v3)
Cuando ejecuto esto, sin embargo, me sale un error en la consola de herramientas de desarrollo de Chrome:
Uncaught TypeError: Object #<Object> has no method 'getPosition'
Esto se refiere a la línea 649 en la secuencia de comandos biblioteca de utilidades aquí: http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclusterer/src/markerclusterer.js. Que es la siguiente función:
/**
* Determins if a marker is contained in a bounds.
*
* @param {google.maps.Marker} marker The marker to check.
* @param {google.maps.LatLngBounds} bounds The bounds to check against.
* @return {boolean} True if the marker is in the bounds.
* @private
*/
MarkerClusterer.prototype.isMarkerInBounds_ = function(marker, bounds) {
return bounds.contains(marker.getPosition());
};
El código que estoy usando es relativamente uniformes en materia mapas de Google, la función principal de los cuales es:
function initialize(items,loop,zoom) {
geocoder = new google.maps.Geocoder();
if (items.length > 0) {
var latlng = new google.maps.LatLng(items[0].Lat, items[0].Lng);
var myOptions = {
zoom: zoom,
center: latlng,
//mapTypeControl: false,
streetViewControl: false,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById("map"), myOptions);
map.setOptions({styles: stylez});
for (var i = 0; i < items.length; i++) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(items[i].Lat, items[i].Lng),
title: items[i].Title,
icon: _iconCenter,
shadow: shadow,
infocontent: items[i].Description
});
marker.setMap(map);
markersArray.push(marker);
}
var markerCluster = new MarkerClusterer(map, items);
google.maps.event.addListener(map, "tilesloaded", function() {
if(loop == true){
SetLoop();
}
});
}
}
he rastreado la función erroring atrás tanto según tengo entendido, y debería estar recibiendo coordenadas para que los bordes del mapa puedan determinar los límites, lo que debería ser solo un comportamiento estándar, pero claramente algo no está bien.
Me pregunté si alguien podría arrojar algo de luz sobre esto?
Gracias por cualquier punteros gente ...
No hubo suficiente información en su publicación para que nadie la ayude con eso. – geocodezip
En retrospectiva, tiene razón, pero no me di cuenta de que era el problema, pensé que el problema era con mi función o con la biblioteca clusterer. – Dan
Dudo que el orden de origen fuera el problema, tengo mi archivo markerCluster.js incluido antes del script de la API, como se dice en [los documentos] (https://developers.google.com/maps/documentation/javascript/marker -clustering) y todo está funcionando bien. Probablemente hubo un problema diferente. – stephenmurdoch