Как я могу использовать аргумент функции, чтобы найти точный маркер на карте Google? - PullRequest
0 голосов
/ 25 декабря 2011

Мой маркер всегда будет отображать последнюю информацию по клику.По сути, я хочу отобразить соответствующую информацию для каждого из нажатых маркеров.вот что у меня есть:

$(function() {
    var map = new google.maps.Map(document.getElementById('map_canvas'), {
                zoom : 2,
                center: new google.maps.LatLng(43.65654, -79.90138),
                mapTypeControl: false, //will remove the top right corner Map type(Satellite/Map)
                //scaleControl: false,
                navigationControl: false,
                mapTypeId: google.maps.MapTypeId.ROADMAP
                });
            $.get('example.xml', function(xml) {
            $('marker',xml).each(function(i) {
                var $this = $(this),
                    the_marker = new google.maps.Marker({
                        title: $this.find('label').text(),
                        map: map,
                        clickable: true,
                        position: new google.maps.LatLng(
                            parseFloat($this.find('lat').text()),
                            parseFloat($this.find('lon').text())
                    )});
                        new google.maps.event.addListener(the_marker, 'click', function() {
                        getInfo();
                });
            }); 
        });
    function getInfo() {
            $.ajax({
                type:'GET',
                url:'example.xml',
                dataType:'xml',
                success: function(xml) {
                $(xml).each(function() {
                    $(this).find("marker").each(function() {
                        $(this).find("info"); 
                        $("#newDiv").html($(this).find("info"));
                    })
                })
                }

            })
        $("#newDiv").html($(this).find("info").text());
    }
    });

Это похоже на то, что я всегда получаю последнее информационное окно по щелчку моих маркеров, но я хочу, чтобы у каждого маркера было открытое собственное информационное окно.Теперь у меня нет infowindow в моем примере, и у меня есть div в нем.

Спасибо

1 Ответ

0 голосов
/ 26 декабря 2011

Вы можете просто использовать массив, чтобы сделать это.например,

markers[i] = new Marker({ some options });
new google.maps.event.addListener(markers[i], 'click', function() {
    getInfo(i);
});

добавлено:

до сих пор не получается узнать, почему вы хотите получить только первый маркер в xml при нажатии любого маркера.какая-нибудь демка или пример?если вы хотите получить информацию о выбранном маркере, сделайте это следующим образом.

markers[i] = new Marker({ some options });
info[i] = $(this).find('info');
new google.maps.event.addListener(markers[i], 'click', function() { 
    $("#newDiv").html(info[i]);
});
...