Карты Google: только одно информационное окно создано для нескольких маркеров - PullRequest
3 голосов
/ 12 февраля 2011

Вот моя скрипка ссылка.

Я добавил маркеры на карты, а также информационные окна для каждого маркера. Но появляется только одно информационное окно?

Ответы [ 2 ]

5 голосов
/ 13 февраля 2011

Вот, пожалуйста:

var ships = [['63.44204833', '10.40340333'], ['63.49261667', '9.92661167'], ['63.43243500', '10.37030833'], ['63.43896000', '10.40036167'], ['63.64856000', '10.67950167'], ['63.43330667', '10.36608000'], ['63.43840500', '10.40874000'], ['63.78920833', '11.19232167'], ['63.45155667', '10.20245833'], ['63.43366667', '10.36150000'], ['63.43956667', '10.40019333'], ['63.47066500', '10.33613500'], ['63.43928333', '10.40971667'], ['63.43822000', '10.39873167']];
var map;

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

var marker;

function initialize() {
    var myLatlng = new google.maps.LatLng(63.65, 10.65);
    var myOptions = {
        zoom: 9,
        center: myLatlng,
        mapTypeId: google.maps.MapTypeId.TERRAIN
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

}

function createMarker(lat, lon, html) {
    marker = new google.maps.Marker({
        position: new google.maps.LatLng(lat, lon),
        map: map,
        title: html
    });
    createInfoWindow(marker);
}
function createInfoWindow(m) {
    google.maps.event.addListener(m, 'click', function() {
        infowindow.open(map, m);
    });
}
function processShips(ships) {
    for (var i = 0; i < ships.length; i++) {
        createMarker(ships[i][0], ships[i][1], 'bla');
    }
}

function load(ships) {
    initialize();
    processShips(ships);
}

load(ships);

Рабочая пример .

2 голосов
/ 12 февраля 2011

Просто добавьте var перед маркером в вашей функции createMarker

  var marker = new google.maps.Marker({....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...