我为我正在做的谷歌地图项目制作了一些自定义叠加层。我遇到的问题是当我放置叠加层时,它会根据叠加层的左上角定位它,所以当我放大和缩小时,它看起来好像叠加层正在逐渐向下和向下移动。我需要它从中心定位所以我尝试了:
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,当我缩小地图时,位置仍然逐渐向下移动。
答案 0 :(得分:1)
我实际上能够在一段时间内弄清楚这一点。当x位置需要除以2时,原来的位置不会。我刚开始时的错误假设是,因为point.x是基于div的左边定位的,所以point.y正在基于div的顶部定位。它看起来像point.y是div的中间部分,因此将它除以2实际上是因为我放大了它会使它上下漂移。