我正在使用Openlayers-2.12版本。 但锚定的弹出偏移不能正常工作。它在地图的另一半显示左侧的弹出窗口,虽然我给出了相对定位为“tr”。
var popup = new OpenLayers.Popup.Anchored("popup");
var offset = {'size':new OpenLayers.Size(10,12),'offset':new OpenLayers.Pixel(0,-12)};
popup.offset = offset;
popup.relativePosition = "tr";
任何帮助?
答案 0 :(得分:2)
我正在回答我自己的问题,认为它可以帮助别人。 如果我只使用弹出窗口而不是锚定弹出窗口,它工作正常。
答案 1 :(得分:1)
它似乎是一个偏移属性,它们可以访问用于计算x,y位置的函数。
popup.calculateNewPx = function(px){
// modify OpenLayers.Pixel object here
return px;
}
更具体地说,这就是我最终要做的事情。
popup.calculateNewPx = function(px){
if (popup.size !== null){
switch (popup.relativePosition){
case 'tl':
px = px.add((popup.size.w * -1) - popup.offset, (popup.size.h * -1) - popup.offset);
break;
case 'bl':
px = px.add((popup.size.w * -1) - popup.offset, popup.offset);
break;
case 'tr':
px = px.add(popup.offset, (popup.size.h * -1) - popup.offset);
break;
case 'br':
px = px.add(popup.offset, popup.offset);
break;
}
}
return px;
};