Google Maps API V3 infoWindow - все информационные окна с одинаковым содержимым - PullRequest
2 голосов
/ 04 февраля 2011

На моей странице широта, долгота и содержимое информационного окна представлены в массиве объектов с именем obj.

Так что, если мне нужна широта свойства 1-го объекта, я могу вызвать obj [0].latitude.

Содержимое infoWindow для каждого объекта хранится в obj [i] .text.

Я использую цикл ниже для циклического просмотра значений lat и long и отображения маркеров.и infoWindows.

</p> <p><pre> for (x=1; x<=obj.length; x++) { var latlng1 = new google.maps.LatLng(obj[x].latitude, obj[x].longitude);</p> <code> var marker2 = new google.maps.Marker({ position : latlng1, map : map, icon : prevIcon }); infowindow = new google.maps.InfoWindow(); info = obj[x].text; google.maps.event.addListener(marker2, 'mouseover', function() { infowindow.setContent(info); infowindow.open(map, this); });

}

Приведенный выше код работает, но все информационные окна показывают содержимое последнихobj [i] .text.

Как мне связать содержимое информационного окна определенного информационного окна (obj [x] .text) только с этим экземпляром информационного окна?

Было бы лучше, если кто-томожет указать на решение без использования jQuery или любых других внешних библиотек.

Спасибо,

Ответы [ 2 ]

4 голосов
/ 04 февраля 2011

Должен пройти долгий путь.

function attachMarker( data ) {

    var latLng = new google.maps.LatLng( data.latitude, data.longitude );

    var marker = new google.maps.Marker({
        position : latLng,
        map      : map, // global variable?
        icon     : prevIcon // global variable?
    });

    google.maps.event.addListener(marker, 'mouseover', function() {
       infowindow.setContent( data.text );
       infowindow.open(map, this);
    });

    // add marker here.

}

// afaik, you only need 1 instance of InfoWindow if you only change content.
var infowindow = new google.maps.InfoWindow();

var i = obj.length;
while ( i-- ) {
    attachMarker( obj[ i ] );
}
0 голосов
/ 04 февраля 2011

Приведенный выше комментарий Б.Герриссена очень помог.

Мне удалось добиться закрытия функции для информационной переменной.

В следующем посте групп Google объясняется, как.*https://groups.google.com/group/google-maps-api-for-flash/browse_thread/thread/befeb9bf2d1ebcc9

Спасибо всем:)

...