谷歌地图自定义叠加层位置移动

4

我正在做一个谷歌地图项目,需要定制一些覆盖层。我的问题是当我定位覆盖层时,它是基于覆盖层的左上角定位的,所以当我放大和缩小地图时,覆盖层似乎逐渐向右下移动。我需要它从中心位置定位,所以我尝试了:

var point = this.getProjection().fromLatLngToDivPixel(this.latlng_);
if (point) {
  div.style.left = point.x - $(this.content).outerWidth(true)/2 + 'px';
  div.style.top = point.y - $(this.content).outerHeight(true)/2 + 'px';
}

其中div是覆盖层,point.x和point.y表示覆盖层的左上角。我原以为如果从覆盖层的宽度和高度的一半中分别减去,就能居中显示。对于x轴来说这个方法似乎完美地奏效了,但是在缩小地图时,y轴的位置仍然逐渐向下移动。

1个回答

1

我实际上在一段时间前就能够解决这个问题了。事实证明,虽然x位置需要除以2,但y位置不需要。我最初的错误假设是,由于point.x是基于div的左侧定位的,所以point.y是基于div的顶部定位的。看起来point.y实际上是div的中心,所以将其除以2才导致它在缩放时上下漂移。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接