Google.maps panTo

时间:2013-03-19 21:40:58

标签: google-maps-api-3

我试图将我的地图集中在自定义infoBox的中心。相反,我正在平移到一个完全不同的地方,远离我的地图标记。这是我的代码:

var projection = this.getProjection(),
    centerX = point.x - (125)/2, 
    centerY = point.y - (120)/2, 
    centerPoint = new google.maps.Point(centerX, centerY);
var latLngOfBoxTop = projection.fromContainerPixelToLatLng(centerPoint);
this.map.panTo(latLngOfBoxTop);

什么是平移到地图上某个点的更好方法?

1 个答案:

答案 0 :(得分:2)

我想到这一点,从未更新过我自己的问题。这很容易:我只是将地图的中心设置为标记的位置(我已经拥有的纬度和经度),然后我使用“panBy”,它将像素作为参数,而不是纬度和经度:

    var latlng = this.latlng_,
        div_height = $('#infobox-wrap-' + markerID).css('height').replace(/px/, ''),
        infoBoxHalfHeight = 0, 
        halfDivHeight = Math.round(div_height/2);

    infoBoxHalfHeight = halfDivHeight + 16; //accounts for the infoBox's "pointer" graphic

    this.map.setCenter(latlng);
    this.map.panBy(0, infoBoxHalfHeight);