有时谷歌地图部分带有其他区域变灰。有一个问题,如果我们启动 Firebug,图像确实会出现在那个灰色区域。不知道为什么会这样。任何人都经历过这个并找到了解决方案,请分享。
谷歌地图部分出现,灰色区域代替谷歌服务器的图像
IT技术
javascript
google-maps
google-maps-api-2
2021-03-20 22:51:34
6个回答
如果您正在调整地图的DIV
. 调整大小后,尝试调用gmap.checkResize()
函数。
嗨,如果您在带有地图容器的 div 中使用切换,则在函数中调用 resizeMap
associated with the trigger:
$(".trigger").click(function(){
$(".panel").toggle("fast");
$(this).toggleClass("active");
resizeMap();
return false;
然后 resizeMap(); 像这样
function resizeMap()
{
google.maps.event.trigger(map,'resize');
map.setZoom( map.getZoom() );
}
不要忘记将地图变量设置为全局 ;) 欢呼
我为部分加载的谷歌地图找到了一个简单的解决方案。通常是由于onLoad()
页面的其余部分(包括您的地图元素)未完全加载时被调用造成的。这会导致部分地图加载。解决此问题的一个简单方法是更改您的onLoad
正文标签操作。
旧方法:
onload="initialize()"
新方式:
onLoad="setTimeout('initialize()', 2000);"
这会在 Google Javascript 访问正确的大小属性之前等待 2 秒。在尝试之前,请确保清除浏览器缓存;有时它会卡在那里:)
如果您想知道,这是我最重要的 Javascript 部分(正如 Google 文档中所述,但因为我从 PHP 变量调用Latitude
和Longitude
,因此是 PHP 代码段。
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
function initialize() {
var myOptions = {
center: new google.maps.LatLng(<?php echo $my_latitude; ?> , <?php echo $my_longitude; ?>),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
var point = new google.maps.LatLng(<?php echo $my_latitude; ?> , <?php echo $my_longitude; ?>);
var marker = new google.maps.Marker({ position:point, map:map })
}
</script>
我只是想添加到这个讨论中,我也有灰色条纹的问题,这与我需要使用 gmap.Resize 函数不同,但它在我的 css 中。在我的 css 中,我有
img {
max-width:50%
}
所以当我在我的 css 文件中设置它时
#map-canvas {
max-width:none;
}
问题消失了!我查遍了谷歌,但找不到这个答案。