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 位于叠加层的左上角。我想如果我减去覆盖的宽度/2 和高度/2,它就会居中。这似乎与 x 的宽度完美配合,但对于 y,当我缩小地图时,位置似乎仍逐渐向下移动。

4

1 回答 1

1

我实际上能够在不久前弄清楚这一点。事实证明,虽然 x 位置需要除以 2,但 y 位置不需要。我刚开始有一个错误的假设,即由于 point.x 是基于 div 的左侧定位的,所以 point.y 是基于 div 的顶部定位的。看起来 point.y 一开始是 div 的中间,所以将它除以 2 实际上是导致它在我缩放时上下漂移的原因。

于 2013-10-18T02:04:44.620 回答