2

popup 和 Frame 和 FrameColud 有什么区别?

而且,似乎弹出的方向取决于标记相对于地图的位置。流行音乐可能在标记上方或下方。

例如:

以上:

在此处输入图像描述

以下:

在此处输入图像描述

现在,我想知道如何使弹出窗口始终位于标记的上方?

4

1 回答 1

3

好吧,我自己回答这个问题。

您可以calculateRelativePosition像这样覆盖 FramedCloud 的函数:

OpenLayers.FramedCloud.prototype.calculateRelativePosition=function(){
  return 'tr';
}

而这个函数是继承自OpenLayers.Popup.Anchored.

计算相对位置:函数(像素){

var lonlat = this.map.getLonLatFromLayerPx(px);

var extent = this.map.getExtent();
var quadrant = extent.determineQuadrant(lonlat);

return OpenLayers.Bounds.oppositeQuadrant(quadrant); 

},

于 2012-09-22T09:41:44.700 回答