谷歌地图信息框,平移映射到调整后的信息框大小

时间:2015-04-09 14:30:30

标签: google-maps infobox

我有一个带有infoBoxes的Google地图。 infoBoxes具有在显示后改变infoBox大小的功能。

当内容大于最初显示的内容时,这会导致infoBox流出地图。有没有办法调用infoBox panBox功能,这样infoBox会再次在地图中重新设置,就像打开它一样?

简而言之:如何在更改尺寸后再次使infoBox适合?

参见示例: Fiddle

点击信息框以查看问题

我的代码示例,因为我不允许在没有代码的情况下显示小提琴:)

function initialize() {
var loc, map, marker, infobox;

loc = new google.maps.LatLng(-33.890542, 151.274856);

map = new google.maps.Map(document.getElementById("map-canvas"), {
     zoom: 12,
     center: loc,
     mapTypeId: google.maps.MapTypeId.ROADMAP
});

marker = new google.maps.Marker({
    map: map,
    position: loc,
    visible: true
});

var infobox = new InfoBox({
     content: document.getElementById("infobox"),
     alignBottom: true,
     pixelOffset: new google.maps.Size(0, 0)
});

google.maps.event.addListener(marker, 'click', function() {
    infobox.open(map, this);
});

}
google.maps.event.addDomListener(window, 'load', initialize);

jQuery('document').ready(function(){
jQuery('.content').on('click', function(){
    jQuery('.content').hide();
    jQuery('.hidden').show();
    jQuery('#infobox').height(jQuery('.hidden').height());
});
});

2 个答案:

答案 0 :(得分:0)

您可以尝试添加此map.panTo(loc);

google.maps.event.addListener(marker, 'click', function() {
    infobox.open(map, this);
    map.panTo(loc);
});

答案 1 :(得分:0)

您可以使用infobox.panBox_();

如果您想知道它是如何工作的,请从插件中打开infobox.js。