由于InfoWindow中心,我如何将地图居中?

时间:2012-11-05 16:01:10

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

  

可能重复:
  Is it possible to center a map at a fixed position (lat lng) - 100px?

这是我的code

var latlng = new google.maps.LatLng(42.745334,12.738430);
var options = { zoom: 12, center: latlng, mapTypeId: google.maps.MapTypeId.ROADMAP };
var map = new google.maps.Map(document.getElementById('map'), options);
var marker = new google.maps.Marker({ position: latlng, map: map, title: 'Example' });   

var infoWindow = new google.maps.InfoWindow();
var window_content = '<div style="width:110px;height:150px;">Test</div>';
infoWindow.setContent(window_content);
infoWindow.open(map, marker);   

正如您所看到的,地图以“位置标记”为中心,而不是以InfoWindow高度为中心。 我需要在地图的中心位于infowindow的中心,用更少的话来说。

我该怎么做?

P.S。我想避免在infowindow处设置“高利润率”的解决方法......

1 个答案:

答案 0 :(得分:2)

你必须实际重新输入标记,而不是信息窗口。

你是否设法在我给你的最后一个例子上看到了标记?

如果是这样,当你拖动它时,你会看到标记与infowindow重新居中。

这里我添加了你的infowindow html:http://jsfiddle.net/RASG/vA4eQ/10/

<div style="width:110px;height:150px;">Test</div>

150px

这里有250 px的高信息量

250px

修改

这是更新代码的最后一部分:

var infoWindow = new google.maps.InfoWindow();
var window_content = '<div style="width:110px;height:200px;">Test</div>';
infoWindow.setContent(window_content);

google.maps.event.addListener(marker, 'click', function() {
    infoWindow.open(map, marker);
    map.setCenter(marker.getPosition())
});

在此测试:http://jsfiddle.net/RASG/VFqm5/1/