Loop through array for map

NormanFent

New Member
I need help looping through an array and finishing this code. My array is created from an XML file. The XML file contains meeting location data to be plotted on a map. The array ends up looking like this:\[code\]markerfilter[0].namemarkerfilter[0].addressmarkerfilter[0].Meeting_Typeetc...markerfilter[1].namemarkerfilter[1].addressmarkerfilter[1].Meeting_Typeetc...\[/code\]Right now all the markers plot on the map. I need to loop through the array and filter it based on some variables I setup. This is my attempt at looping through the array:\[code\]for (var i = 0; i < markerfilter.length; i++) { if (markerfilter.Meeting_Type==type&&markerfilter.Day_of_Meeting==day&&markerfilter.Time_of_Meeting==time){ //need to plot the points on the map here }else{ //need to show blank map } }\[/code\]Here is my entire code. I don't even know if the loop is in the right place or if other pieces of the code need to go inside the loop. Any help??\[code\]$(document).ready(function() { $("#map").css({ height: 500, width: 600});var myLatLng = new google.maps.LatLng(43.653823, -79.382843);MYMAP.init('#map', myLatLng, 11);$("#showmarkers").click(function(e){ MYMAP.placeMarkers('include/xml.php');});});var MYMAP = {map: null,bounds: null}MYMAP.init = function(selector, latLng, zoom) {var myOptions = { zoom:zoom, center: latLng, mapTypeId: google.maps.MapTypeId.ROADMAP}this.map = new google.maps.Map($(selector)[0], myOptions);this.bounds = new google.maps.LatLngBounds();}var markerfilter = [];MYMAP.placeMarkers = function(filename) {$.get(filename, function(xml){ $(xml).find("marker").each(function(){ var name = $(this).find('name').text(); var address = $(this).find('address').text(); var address2 = $(this).find('address2').text(); var Meeting_Type = $(this).find('Meeting_Type').text(); var Time_of_Meeting = $(this).find('Time_of_Meeting').text(); var Day_of_Meeting = $(this).find('Day_of_Meeting').text(); var Open_Meeting = $(this).find('Open_Meeting').text(); var Wheelchair = $(this).find('Wheelchair').text(); var ASL = $(this).find('ASL').text(); var Comments = $(this).find('Comments').text(); // create a new LatLng point for the marker var lat = $(this).find('lat').text(); var lng = $(this).find('lng').text(); var point = new google.maps.LatLng(parseFloat(lat),parseFloat(lng)); var markerdata = http://stackoverflow.com/questions/10567673/{}; $(this).children().each(function() { markerdata[this.tagName] = $(this).text(); }); markerfilter.push(markerdata); var MeetingType = document.getElementById("Meeting_Type"); var type = MeetingType.options[MeetingType.selectedIndex].text; var DayofMeeting = document.getElementById("Day_of_Meeting"); var day = DayofMeeting.options[DayofMeeting.selectedIndex].text; var TimeofMeeting = document.getElementById("Time_of_Meeting"); var time = TimeofMeeting.options[TimeofMeeting.selectedIndex].text; for (var i = 0; i < markerfilter.length; i++) { if (markerfilter.Meeting_Type==type&&markerfilter.Day_of_Meeting==day&&markerfilter.Time_of_Meeting==time){ markerfilter.setMap(MYMAP.map); }else{ markerfilter.setMap(null); } } // extend the bounds to include the new point MYMAP.bounds.extend(point); var marker = new google.maps.Marker({ position: point, map: MYMAP.map }); var infoWindow = new google.maps.InfoWindow(); var html='<b><u>'+name+'</b></u><br />'+address2+'<br />'+address+'<br />'+Meeting_Type+',&nbsp'+Time_of_Meeting+',&nbsp'+Day_of_Meeting+'<br />Open Meeting:&nbsp'+Open_Meeting+'<br />Wheelchair Accessible:&nbsp'+Wheelchair+'<br />ASL:&nbsp'+ASL+'<br />Comments:&nbsp'+Comments; google.maps.event.addListener(marker, 'click', function() { infoWindow.setContent(html); infoWindow.open(MYMAP.map, marker); }); MYMAP.map.fitBounds(MYMAP.bounds); });});console.log(markerfilter);}\[/code\]Right now when I run my current, firebug tells me:markerfilter.setMap(null) is not a function.
 
Back
Top