它看起来而不是偏移属性,它们可以访问用于计算 x,y 位置的函数。
popup.calculateNewPx = function(px){
// modify OpenLayers.Pixel object here
return px;
}
参考:http ://dev.openlayers.org/docs/files/OpenLayers/Popup/Anchored-js.html#OpenLayers.Popup.Anchored.calculateNewPx
更具体地说,这就是我最终要做的。
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;
};