在谷歌地图中将中心点设置在右侧

时间:2012-09-28 08:08:51

标签: javascript google-maps

我正在使用谷歌地图开发一个webapp,但是我已经将UI放在地图上,因此地图的中心部分位于用户界面下。

是否可以将中心点设置为右侧,如下图所示? 因此,当我缩放时,它会放大地图的右半部分。

image

/编辑/

我发现它,遗憾的是David你的代码对我没用。

但是我尝试了panby方法,它以这种方式为我工作,当我放大时它现在向右移动。谢谢!

google.maps.event.addListener(map, 'zoom_changed', function() {
    setTimeout(moveMap, 10);
    });

    function moveMap() {
            map.panBy(300, 0);
    }

1 个答案:

答案 0 :(得分:0)

这可以使用地图panBy方法,这个例子将地图缩小一半然后变成四分之一。新中心将位于地图容器的3/4标记处。开发此代码是为了允许地图容器在大小上展开,但在地图以完整尺寸加载但仍然被切断时仍然将用户标记居中。

您可以使用这些数字来确定您的位置。

var map, // Your map object
    mapWidth = $('#map').css('width'); // Width of map container
    nCentre,
    cCentre,
    visibleWidth = 200; // Visible area in PX you want map to be centered in

// Make sure width is an Int
mapWidth = parseInt(mapWidth.replace(/px$/, ''), 10);

// Get the center of viewable area
cCentre = visibleWidth / 2;

// Create the new position variable
nCentre = cCentre - (mapWidth / 2);

// Pan the map to the centre of the visible area
if (nCentre !== 0) {
    map.panBy(nCentre, 0);
}

根据您的要求,您可能不需要进行第二次计算,因为您实际上只需要计算可见区域和地图容器的偏移量,然后根据偏移量平移到新的中心。