Gis Openlayers 3-使用ol.Overlay时更新弹出窗口的位置

Gis Openlayers 3-使用ol.Overlay时更新弹出窗口的位置,gis,openlayers-3,Gis,Openlayers 3,问题是弹出消息根据缩放级别移动位置。这是一个问题,因为它正在远离标记。我正在寻找的解决方案是,在放大/缩小事件期间,弹出消息保持在其标记上方。以下是弹出窗口本身: // The popup var popupContainer = document.getElementById('popup'); var popupContent = document.getElementById('popup-content'); var popupCloser = document.getElementBy

问题是弹出消息根据缩放级别移动位置。这是一个问题,因为它正在远离标记。我正在寻找的解决方案是,在放大/缩小事件期间,弹出消息保持在其标记上方。以下是弹出窗口本身:

// The popup
var popupContainer = document.getElementById('popup');
var popupContent = document.getElementById('popup-content');
var popupCloser = document.getElementById('popup-closer');

// Create an overlay to anchor the popup to the map
var popupOverlay = new ol.Overlay({
  element: popupContainer,
  autoPan: true,
  autoPanAnimation: {
  duration: 250
}
});
map.addOverlay(popupOverlay);
然后设置弹出窗口的位置:

// Make room for popup
ol.coordinate.add(clickCoordinate, [0, 800000]);

// Set Popup overlay position
popupOverlay.setPosition(clickCoordinate);

// Setup popup style
popupContainer.style.height = "100px;"
popupContent.style.overflowY = "scroll";
popupContent.style.height = "90px";
popupContent.style.width = "100px";

// Set popup content text
popupContent.innerHTML = "Hello World";
在初始缩放级别,一切看起来都很好,但当缩放更改时,弹出窗口开始远离标记。“调整”弹出消息使其始终位于标记上方的正确方法是什么


谢谢

我发现问题出在这一行:

// Make room for popup
ol.coordinate.add(clickCoordinate, [0, 800000]);
如果我把它注释掉,它会工作,但是我会得到覆盖标记的弹出窗口

这是一把小提琴


若你们转到上面的小提琴,你们会看到一行写着“取消注释这行以查看问题”。将弹出窗口放置在标记上方显然不是正确的方法。如何使弹出窗口显示在标记上方而不覆盖它?谢谢。

也许你会用小提琴来表现这种行为,因为在官方示例中,这种情况不会发生。为什么不使用css将弹出窗口从标记位置移开呢?Andreas,我将:.ol popup{bottom:12px;…改为.ol popup{下:55px;我相信这解决了这个问题。谢谢!你能更新答案吗?这样对其他人也有用吗?