Howdy all, I'm pretty new at the v3 api, and javascript in general,
and have been going batty trying to figure out how to display an info
window on clusterclick to show information from the markers it
contains. Ive been digging through the threads and managed to get an
alert to populate with the array (?) length/etc, but am having real
trouble moving forward with displaying any information from within
that array, I keep getting [object Object]. any help would be
appreciated.. test site link is here:
http://smartersummerssite.org/map/index.php
Thank you to anyone and everyone who can help with this surely
beginner problem...
map javascript.js is:
window.onload=initialize;
var clickedMarkers = [];
var markers = [];
function initialize() {
var center = new google.maps.LatLng(37.7185, -97.3828);
var myOptions = {
zoom: 4,
center: center,
mapTypeId: 'roadmap',
mapTypeControl: false,
scrollwheel: true,
panControl: false,
streetViewControl: false,
zoomControl: true,
zoomControlOptions: {position:
google.maps.ControlPosition.LEFT_TOP}
};
var map = new google.maps.Map(document.getElementById("map"),
myOptions);
downloadUrl("phpsqlajax_genxml3.php", function(data) {
var infoBubble = new InfoBubble({
minWidth: 310, maxWidth: 310, minHeight: 150, maxHeight:
150,
});
var markers2 =
data.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers2.length; i++) {
var id = markers2[i].getAttribute("id");
var OrganizationName =
markers2[i].getAttribute("OrganizationName");
var OrganizationStreet =
markers2[i].getAttribute("OrganizationStreet");
var OrganizationCity =
markers2[i].getAttribute("OrganizationCity");
var OrganizationState =
markers2[i].getAttribute("OrganizationState");
var OrganizationPostalCode =
markers2[i].getAttribute("OrganizationPostalCode");
var ContactName = markers2[i].getAttribute("ContactName");
var ContactPhone = markers2[i].getAttribute("ContactPhone");
var ContactEmail = markers2[i].getAttribute("ContactEmail");
var Twitter = markers2[i].getAttribute("Twitter");
var Facebook = markers2[i].getAttribute("Facebook");
var Website = markers2[i].getAttribute("Website");
var EventName = markers2[i].getAttribute("EventName");
var EventLocationName =
markers2[i].getAttribute("EventLocationName");
var txtStreet = markers2[i].getAttribute("txtStreet");
var txtCity = markers2[i].getAttribute("txtCity");
var txtState = markers2[i].getAttribute("txtState");
var txtPostalCode = markers2[i].getAttribute("txtPostalCode");
var EventDate = markers2[i].getAttribute("EventDate");
var StartTime = markers2[i].getAttribute("StartTime");
var EndTime = markers2[i].getAttribute("EndTime");
var GradesServed = markers2[i].getAttribute("GradesServed");
var ExpectedAttendance =
markers2[i].getAttribute("ExpectedAttendance");
var HowYouCanHelp = markers2[i].getAttribute("HowYouCanHelp");
var EventDescription =
markers2[i].getAttribute("EventDescription");
var latLng = new google.maps.LatLng(
parseFloat(markers2[i].getAttribute("lat")),
parseFloat(markers2[i].getAttribute("lng")));
var html = "<h2><a href=detail.php?id=" + id + "&referer=map>" +
EventName + "</a></h2><p>" + EventLocationName + "<br /> " + txtStreet
+ "<br /> " + txtCity + ", " + txtState + " " + txtPostalCode + "</
p><p><strong>Event Date:</strong> " + EventDate + "<br /><strong>Start
Time:</strong> " + StartTime + "<br /><strong>End Time:</strong> " +
EndTime + "<br /><strong>Grades Served:</strong> " + GradesServed + "</
p><p>" + EventDescription + "</p><a href=detail.php?id=" + id +
"&referer=map>View More Details</a>";
var marker = new google.maps.Marker({
map: map,
position: latLng,
title: EventName
});
markers.push(marker), bindInfoBubble(marker, map, infoBubble,
html);
}
// Adding the InfoWindow
function bindInfoBubble(marker, map, infoBubble, html) {
google.maps.event.addListener(marker, 'click', function() {
infoBubble.setContent(html);
infoBubble.open(map, marker);
});
}
// Define the marker clusterer
var clusterOptions = {
zoomOnClick: false }
var markerCluster = new MarkerClusterer(map, markers,
clusterOptions);
// Listen for a cluster to be clicked
google.maps.event.addListener(markerCluster, 'clusterclick',
function(cluster) {
var center = cluster.getCenter();
var size = cluster.getSize();
var clickedMarkers = cluster.getMarkers();
alert (size + center + clickedMarkers);
});
}
)
}