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