我尝试使用带有一组标记和弹出窗口的OpenLayers3构建地图。到目前为止,标记和弹出窗口正常工作,但是当我单击一个标记(弹出窗口),然后再单击地图中 - 在另一个标记中 - 在另一个标记中单击时,它显示了一个与第一个内容相同的弹出窗口。我已经进行了研究,但找不到一些有用的东西。因此,这是我的弹出窗口的部分:
//popup
var element = document.getElementById('popup');
var popup = new ol.Overlay({
element: element,
positioning: 'bottom-center',
stopEvent: false
});
map.addOverlay(popup);
// display popup on click
map.on('click', function(evt) {
var feature = map.forEachFeatureAtPixel(evt.pixel,
function(feature, layer) {
return feature;
});
if (feature) {
var geometry = feature.getGeometry();
var coord = geometry.getCoordinates();
popup.setPosition(coord);
$(element).popover({
'placement': 'top',
'html': true,
'content': feature.get('information')
});
$(element).popover('show');
} else {
$(element).popover('destroy');
}
});
希望有人可以帮助我。谢谢!
我遇到了同样的问题,并在此处找到了我的解决方案https://gis.stackexchange.com/questions/137561/openlayers-openlayers-3-markers-3-markers-and-popovers
尝试更改您的
$(element).popover({
'placement': 'top',
'html': true,
'content': feature.get('information')
});
to
$(element).attr('data-placement', 'top');
$(element).attr('data-html', true);
$(element).attr('data-content', feature.get('information'));
我为您做了一个例子。看看!
您必须在每个标记上写入一些内容。
http://embed.plnkr.co/hheawk/preview