Google Maps V3 - nie mogę pogodzić zamknięcia

Wiem, że to powszechny problem, ale gapiłem się, czytałem googled i patrzyłem jeszcze trochę, ale nie widzę, co jest nie tak.

Wypełniam swoje mapy z tabeli MySql, odwrócę geokodowanie brytyjskiego kodu pocztowego, narysuję okrąg wokół wyniku, ale nie mogę zrozumieć, dlaczego moja funkcja zamknięcia nie działa.

Jak rozumiem, zasada zamknięcia polega na dostępie do zmiennej spoza zakresu pętli, którą próbuję osiągnąć za pomocą tej funkcji - ale dla mnie nie mogę jej uruchomić.

Jestem pewien, że ktoś będzie miał odpowiedź na mój rażący błąd i byłbym wdzięczny za każdą pomoc, jaką ktokolwiek może zaoferować.

var mapOptions = {
    zoom : 8,
    center : new google.maps.LatLng(37.09024, -95.712891),
    mapTypeId : google.maps.MapTypeId.ROADMAP
};

var infowindow = new google.maps.InfoWindow({
    content : contentString
});

var geocoder = new google.maps.Geocoder();
var map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
var contentString;
var i

downloadUrl("getXML.php", function(data) {

    var xml = data.responseXML;
    var markers = xml.documentElement.getElementsByTagName("marker");
    for (i = 0; i < markers.length; i++) {
        var name = markers[i].getAttribute("name");
        contentString =(name);
        var postcode = markers[i].getAttribute("postcode");
        var dateadded = markers[i].getAttribute("dateadded");
        var extra = markers[i].getAttribute("extra");

        geocoder.geocode({
            'address' : postcode
        }, function(results, status) {
            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                var marker = new google.maps.Marker({
                    map : map,
                    clickable : true,
                    position : results[0].geometry.location
                })
                google.maps.event.addListener(marker, 'click', (function(marker, i) {
                    return function() {
                        infowindow.setContent(name );
                        infowindow.open(map, marker);
                    }
                })(marker, i));

                var circle = new google.maps.Circle({
                    map : map,
                    radius : 12070.99, // 15 miles in metres
                    fillColor : '#AA0000'
                });
                circle.bindTo('center', marker, 'position');

            } else {
                alert('Geocode was not successful for the following reason: ' + status);
            }

        });

    }

});

questionAnswers(1)

yourAnswerToTheQuestion