I have the following 2 functions for inserting, geocoding and placing markers on a google map.
I keep getting TypeError: adds[i] is undefined , which of course makes the rest of the map bomb.
Here is my code:
// Place Markers on the Map var PlaceMarkers = function (iw, adds, gc) { var image = {url: "http://meatmysite.com/Images/star2.png", size: new google.maps.Size(24, 24)}; var aCt = adds.length; for(var i = 0; i < aCt; ++i) { GetLatLng(gc, adds[i].address, function(pos) { if(pos) { var ipop = '<h1>' + adds[i].title + '</h1>'; // <----- TypeError: adds[i] is undefined if(!isBlank(adds[i].url)){ ipop += '<a href="' + adds[i].url + '" target="_blank">' + adds[i].url + '</a><br />'; } ipop += '<div class="map_item_content" id="mi_content' + i + '">' + adds[i].content + '</div>'; if(!isBlank(adds[i].mainphone)){ ipop += '<br /><strong>Phone:</strong> <a href="tel:'+adds[i].mainphone+'">' + adds[i].mainphone + '</a>'; } if(!isBlank(adds[i].mainemail)){ ipop += '<br /><strong>Email:</strong> <a href="mailto:'+adds[i].mainemail+'">' + adds[i].mainemail + '</a>'; } console.log('HEY NOW: ' + pos.toString() + ' - Location Found!'); var mark = new google.maps.Marker({title: adds[i].title, position: pos, map: map, icon: image, html: ipop}); google.maps.event.addListener(mark, 'click', function(){ iw.setContent(this.html); iw.open(map, this); }); } }); } }; // Get Lat/Lng Location var GetLatLng = function(gc, add, f) { var ret = ''; gc.geocode({'address': add}, function(res, status) { if (status == 'OK') { f(res[0].geometry.location); console.log('Found Here: ' + ret.toString()); } }); return -1; };
DEMO RETURN DATA To add
[ { "address": "1 My Street Gilbert, AZ 85234", "title": "My Title 1", "url": "http://www.myurl.com/", "mainphone": null, "mainemail": null, "content": "1 My Street<br />Gilbert, AZ 85234" }, { "address": "2 My Street North Richland Hills, TX 76182", "title": "My Title 2", "url": null, "mainphone": null, "mainemail": null, "content": "2 My Street<br />North Richland Hills, TX 76182" } ]