【问题标题】:How to make openInfoWindowHtml work in Google Maps 2如何使 openInfoWindowHtml 在 Google Maps 2 中工作
【发布时间】:2011-10-04 00:44:41
【问题描述】:

我正在设置一个嵌入了 GMap2 的 extjs 面板。这是设置:

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

我正在使用来自here 的示例,因此当我单击标记时,我会看到一个信息窗口。问题是,事件触发了,我可以在控制台中看到正确的 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));

有什么想法吗?

【问题讨论】:

  • 在调用 createMarker 之后的某个时间点,我想您使用 map.addOverlay(marker) 将其添加到地图中?
  • 是的,我愿意。标记出现,但事件没有触发。

标签: google-maps extjs extjs4 google-maps-api-2


【解决方案1】:

听起来您的 HTML 无效。您可以转储一些您传递给 openInfoWindowHtml 的示例 html 数据吗?您的 createMarker 函数适用于:

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

您使用的是哪个版本的 api? 2.x?

【讨论】:

  • HTML 绝对有效。我什至尝试简单地传入一个字符串。我正在使用 2.X。
【解决方案2】:

您可能想要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;
}

【讨论】:

  • 这个答案解决了问题吗?
【解决方案3】:

您还定义了两个在不同范围内的标记变量,请检查以确保您的侦听器位于正确的“标记”上。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-04
    • 2015-09-03
    • 2015-07-31
    • 1970-01-01
    • 2011-01-02
    • 2015-06-05
    • 1970-01-01
    • 2016-09-16
    相关资源
    最近更新 更多