0

我有一个容器来呈现谷歌地图实例,在这个容器上方我绘制(HTML)另一个带有搜索框(起点和终点)的容器。

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

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

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

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

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

4

1 回答 1

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)));
    }
});
于 2013-02-15T20:45:03.353 回答