【发布时间】:2012-02-14 09:40:20
【问题描述】:
我正在使用 OpenLayers 创建地图并绘制位置。每个位置都有一个标记和一个弹出窗口,并且是使用 OpenLayers.Feature 创建的 - 目前,我绝对不在我的舒适区之外,所以我将示例代码拼凑在一起。
一个标记的创建如下(为了简洁起见,我已经砍掉了我希望是明显的变量分配):
function addMarker(ll, popupClass, popupContentHTML, closeBox, overflow, type)
{
var feature = new OpenLayers.Feature(markerLayer, ll);
feature.closeBox = closeBox;
feature.popupClass = popupClass;
feature.data.icon = icon;
feature.data.popupContentHTML = popupContentHTML;
feature.data.overflow = (overflow) ? "auto" : "hidden";
var marker = feature.createMarker();
var markerClick = function (evt) {
if (this.popup == null) {
this.popup = this.createPopup(this.closeBox);
map.addPopup(this.popup);
this.popup.show();
} else {
this.popup.toggle();
}
currentPopup = this.popup;
OpenLayers.Event.stop(evt);
};
marker.events.register("mousedown", feature, markerClick);
markerLayer.addMarker(marker);
}
地图可以包含许多标记。
单击标记时,弹出窗口会打开和关闭。我想要做的是,当单击一个新标记并打开一个弹出窗口时,关闭与地图上所有标记相关的所有弹出窗口 - 也就是说,我一次只希望显示一个弹出窗口。
可能是我的方法全错了,但希望得到指点,即使只是尝试的想法。
【问题讨论】:
标签: javascript openlayers