Как заставить openInfoWindowHtml работать в Google Maps 2 - PullRequest
4 голосов
/ 04 октября 2011

Я настраиваю панель extjs со встроенным GMap2.Вот настройка:

 map = new GMap2(document.getElementById("gmappanel"));
 map.setCenter(new GLatLng(58.019257, -115.572402), 3);
 map.setUIToDefault();

Я использую пример из здесь , поэтому, когда я нажимаю на маркер, я получаю информационное окно.Проблема в том, что событие запускается, и я вижу правильный HTML в консоли, но больше ничего не происходит.Информационное окно просто не открывается.нет ошибок, ничего.

Вот код для этого:

 function createMarker(point, val) {
    var marker = new GMarker(point);
    var name = val.data.name;
    var html = "<table class='marker'>";
    html += "<tr><td>Name: </td><td>" + name + "</td></tr>";
    html += "</table>";

    GEvent.addListener(marker, "click", function() {
        marker.openInfoWindowHtml(html);
        debug("Marker fired");
    });

    return marker;
}

Вот как я это называю:

 var marker = createMarker(point,store.getAt(i));

Есть идеи?

Ответы [ 3 ]

2 голосов
/ 06 октября 2011

Похоже, ваш HTML недействителен.Можете ли вы вывести некоторые примеры HTML-данных, которые вы передаете в openInfoWindowHtml?Ваша функция createMarker прекрасно работает с:

var html = "<table class='marker'><tr><td>Name: </td><td> sometext </td></tr></table>";

Какую версию API вы используете?2.x

1 голос
/ 09 октября 2011

У вас также есть две переменные маркера, определенные в разных областях, убедитесь, что у вас есть слушатель справа от «маркера».

1 голос
/ 06 октября 2011

Возможно, вы хотите bindInfoWindowHtml , а не openInfoWindowHtml .

Нечто подобное ...

function createMarker(point, val) {
    var marker = new GMarker(point);
    var name = val.data.name;
    var html = "<table class='marker'>";
    html += "<tr><td>Name: </td><td>" + name + "</td></tr>";
    html += "</table>";
    marker.bindInfoWindowHtml(html);
    return marker;
}
...