Tro*_*roy 6 google-maps google-maps-api-3
我一直在尝试使用Google Maps API,但是我遇到了InfoWindow的问题...它似乎总是太小而无法容纳我放在其中的内容,因此我的内容溢出InfoWindow以外的内容地图:

如果InfoWindow中的内容是动态的或静态的,大或小,内容周围的白框总是有点太小,似乎没有什么区别.
这是我正在测试的代码:
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<style type="text/css">
html { height: 100% }
body { height: 100%; margin: 0; padding: 0 }
#map-canvas { height: 100% }
</style>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDuV-Jyz8N6b1fVUVCa1EnbPzgeCs9J5_o&sensor=true"></script>
<script type="text/javascript">
var districts = [
{
name: 'Test Spot 1',
latitude: 29.680894,
longitude: -82.298584
},
{
name: 'Test Spot 2',
latitude: 28.323725,
longitude: -80.713806
}
],
addDistrictMarker = function(district, map, infoWindow) {
var position = new google.maps.LatLng(district.latitude, district.longitude),
marker = new google.maps.Marker({
position: position,
map: map,
title: district.name
});
google.maps.event.addListener(marker, 'click', function() {
infoWindow.close()
var $infoWindowContent = $(infoWindow.content),
$title = $infoWindowContent.find('#title');
$title.html(marker.title);
$infoWindowContent.show();
infoWindow.open(map, marker);
});
},
addDistrictMarkers = function(map, infoWindow) {
for (var i=0; i<districts.length; i++) {
var district = districts[i];
addDistrictMarker(district, map, infoWindow);
}
},
initialize = function() {
var mapOptions = {
center: new google.maps.LatLng(27.907058,-81.44165),
zoom: 7
},
map = new google.maps.Map(document.getElementById("map-canvas"),
mapOptions),
$infoWindowContent = $('#info-window'),
infoWindow = new google.maps.InfoWindow({
content: $infoWindowContent.get(0)
});
addDistrictMarkers(map, infoWindow);
}
google.maps.event.addDomListener(window, 'load', initialize);
</script>
</head>
<body>
<div id="map-canvas"></div>
<div id="info-window" style="display: none;">
<h1 id="title"></h1>
<div id="bodyContent">
<p>A description of some sort...</p>
<p>
And a link:
<a href="http://foo.bar.com">http://foo.bar.com</a>
</p>
</div>
<div style="clear: both;"></div>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果/当Google的代码没有自动执行时,有没有办法告诉Google代码调整InfoWindow的大小?或者我的代码中有一个愚蠢的错误,即阻止谷歌正确调整InfoWindow的大小?
我结束了:
infoWindowLinea.setContent(infoWindowLinea.getContent());
Run Code Online (Sandbox Code Playgroud)
改变内容后.这迫使谷歌地图重新计算宽度和高度.
我发现显式设置用作 InfoWindow 内容的 div 的“高度”CSS 样式(对我来说是“#info-window”)似乎会导致 google 的代码正确调整信息窗口的大小。
就我而言,我只是在更改 div 内容后使用 jQuery 来计算并设置“高度”样式:
$infoWindowContent.height($infoWindowContent.height());
Run Code Online (Sandbox Code Playgroud)
我仍然没有弄清楚是什么导致谷歌首先错误地调整窗口大小......动态更改内容不是原因,因为(1)静态内容有同样的问题,并且(2)谷歌正在更改窗口大小如果/当我动态更改内容时,他们只是没有对其进行足够的更改。不知何故,谷歌只是错误地计算了规模。然而,显式设置 css 高度似乎可以解决这个问题。
| 归档时间: |
|
| 查看次数: |
19510 次 |
| 最近记录: |