2

嗨,我正在尝试将 gmap 与我的网站集成。但默认情况下,信息窗口是打开的。我想在单击标记后打开信息窗口。如何在页面加载时关闭信息窗口?

function initialize() {
    if (GBrowserIsCompatible()) {
        var map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(22.4642600, 70.0690540), 6);
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());
        map.addMapType(G_SATELLITE_3D_MAP);
        for (var i = 0; i < newpoints.length; i++) {
            var point = new GPoint(newpoints[i][1], newpoints[i][0]);
            var popuphtml = newpoints[i][4];
            var post_url = newpoints[i][5];
            var addr = newpoints[i][6];
            var marker = createMarker(point, newpoints[i][2], popuphtml, post_url, addr);
            map.addOverlay(marker);
        }
    }
}

function createMarker(point, icon, popuphtml, post_url, addr) {
    var popuphtml = '<div id="popup">' + popuphtml + '<div><a href=' + post_url + '>Link</a></div></div>';
    var marker = new GMarker(point);
    marker.openInfoWindowHtml(popuphtml);
    GEvent.addListener(marker, "click", function () {
        marker.openInfoWindowHtml(popuphtml);
    });
    return marker;
}
4

2 回答 2

1

删除此行

marker.openInfoWindowHtml(popuphtml);

所以它变成了

function createMarker(point, icon, popuphtml, post_url, addr) {
    var popuphtml = '<div id="popup">' + popuphtml + '<div><a href=' + post_url + '>Link</a></div></div>';
    var marker = new GMarker(point);
    GEvent.addListener(marker, "click", function () {
        marker.openInfoWindowHtml(popuphtml);
    });
    return marker;
}

您正在openInfoWindowHtml立即调用该方法......现在它仅click在标记事件发生时调用

笔记

您正在使用 Google Maps V2 ...这是来自 google 的与 V2 相关的消息

注意:Google Maps Javascript API 第 2 版已于 2010 年 5 月 19 日正式弃用。根据我们的弃用政策,V2 API 将继续工作,但我们鼓励您将代码迁移到 Maps Javascript API 的第 3 版。

于 2012-04-11T10:17:11.083 回答
0

删除marker.openInfoWindowHtml(popuphtml);之后var marker = new GMarker(point);

于 2012-04-11T10:16:46.417 回答