有时谷歌地图部分与其他区域变灰。有一个问题,如果我们启动Firebug,图像确实会出现在灰色区域。不知道为什么会这样。 任何人都经历过这个并找到解决方案,请分享。
答案 0 :(得分:79)
答案 1 :(得分:36)
如果要调整地图的DIV
大小,可能会发生此错误。调整大小后,尝试调用gmap.checkResize()
函数。
答案 2 :(得分:7)
如果您使用地图容器在div中切换,请在函数
中调用resizeMapassociated 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() );
}
不要忘记将map变量设置为global;) 欢呼声
答案 3 :(得分:7)
我为部分加载的谷歌地图找到了一个简单的解决方案。通常它是由于在页面的其余部分(包括您的地图元素)未完全加载时被调用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>
答案 4 :(得分:4)
我只是想在这个讨论中添加灰色条纹这个问题,并且这个问题与我需要使用gmap.Resize函数的问题相同,但它在我的CSS中。在我的CSS中我有
img {
max-width:50%
}
所以当我在我的css文件中设置它时
#map-canvas {
max-width:none;
}
问题消失了!我看了一遍谷歌,但无法找到答案。
答案 5 :(得分:1)
这种风格解决了我的问题
#map_canvas img { max-width: none !important; }
这会强制浏览器允许地图尽可能宽 - !important
本质上意味着&#34;不要覆盖此样式&#34;。
答案 6 :(得分:1)
上述解决方案对我没有用。
我已将<?php
$connect= mysqli_connect("localhost","root","","result");
$jsondata=file_get_contents("result.json");
$json= json_decode($jsondata,true);
$results=$json['results'];
foreach($results as $key => $result){
foreach($result["tickets"] as $k => $v){
$sql="INSERT into event(name,url,imageUrl,dateCreated,eventName,addressLine1,addressLine2,ticketName,price) VALUES('".$result["name"]."','".$result["url"]."','".$result["imageUrl"]."','".$result["dateCreated"]."','".$result["venue"]["name"]."','".$result["venue"]["addressLine1"]."','".$result["venue"]["addressLine2"]."','".$v["name"]."','".$v["price"]."')";`
mysqli_query($connect,$sql);
}
}
echo "events data inserted";
?>
用于地图,将其更改为display:none
对我来说很好。
更改
visibility:hidden
收件人
display:none
答案 7 :(得分:0)
我这样解决了,我的问题出在旋转设备上,这个解决方案效果很好:
$scope.orientation = function(){
var supportsOrientationChange = "onorientationchange" in window,
orientationEvent = supportsOrientationChange ? "orientationchange" : "resize";
window.addEventListener(orientationEvent, function() {
$interval(function(){
google.maps.event.trigger(map, 'resize');
},100);
});
};
$scope.orientation();
答案 8 :(得分:0)
我在网站的其他部分工作时弹出了这个问题,所以当它开始时我没有注意到它。在经历了我在过去一小时内所做的每一次改变之后,我遇到了罪魁祸首:
div
{
[... other css ...]
overflow: auto;
}
在我的CSS中。 我删除了它,瞧,它有效。 (当然,我可以在我的地图div上更改overflow属性但是我只需要溢出:自动对几个div。)我确定有一个很好的理由但是我很新,所以我不知道知道。无论如何,我希望这可以帮助别人。