1

我有一个带有信息框的谷歌地图。信息框具有在信息框显示后更改其大小的功能。

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

简而言之:更改大小后如何使 infoBox 再次适合?

请参阅示例: 小提琴

点击信息框查看问题

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

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());
});
});
4

2 回答 2

0

你可以尝试添加这个 map.panTo(loc);

google.maps.event.addListener(marker, 'click', function() {
    infobox.open(map, this);
    map.panTo(loc);
});
于 2015-04-09T16:52:38.353 回答
0

您可以使用infobox.panBox_();

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

于 2018-08-08T05:07:50.683 回答