Javascript API Google地图设置屏幕右侧的中心

时间:2013-02-15 20:28:47

标签: javascript jquery google-maps-api-3

我有一个容器来渲染一个谷歌地图实例,在这个容器上方我用另一个容器(原点和目的地)绘制(HTML)另一个容器。

选择原点时,会在地图中绘制标记(与目标输入相同)。

现在我需要“平移”地图以显示搜索框右侧的标记。

现在,当我放置一个标记时,我使用fitbounds来确保标记位于地图容器内,但在某些情况下,标记是在搜索框下绘制的。

然后我尝试使用“panBy”方法在搜索框的右侧绘制地图的中心,但并不总是有效。

如何确保两个标记始终可见并在搜索框的右侧绘制?

1 个答案:

答案 0 :(得分:0)

考虑一下:您需要确保标记位于地图的右侧。如果我们获得NE坐标以及中心,我们可以将其与标记位置进行比较,并根据需要轻松设置新的中心。

代码:

google.maps.event.addListener(marker, 'click', function() {
    var markerPos = this.getPosition(), center = map.getCenter(),
        mapNE = map.getBounds().getNorthEast();

    if(!(markerPos.lng() > center.lng() && markerPos.lng() < mapNE.lng())) { //marker is not on the right side
        //based on center and NE calulate pos to center the marker
        map.setCenter(new google.maps.LatLng(markerPos.lat(), (markerPos.lng() - (mapNE.lng() - center.lng())/2)));
    }
});