2014-01-14 81 views
0

我在我的网站上集成Google Maps API v3时遇到了一些问题。这里是我的代码:确保Google地图加载

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=xxxx&sensor=true"></script><script> 
var map; 
function initialize() { 
var mapOptions = { 
    center: new google.maps.LatLng(<?php echo $lat;?>,<?php echo $lng;?>), 
    //center: new google.maps.LatLng(32.295439,-64.7795), 
    zoom: 17, 
    mapTypeId: google.maps.MapTypeId.SATELLITE 
}; 
map = new google.maps.Map(document.getElementById("map-canvas"), 
    mapOptions); 
var lL = new google.maps.LatLng(xxx,xxx); 
var marker = new google.maps.Marker({ 
     position: lL, 
     map: map 
    }); 
alert('map loaded') 
} 
google.maps.event.addDomListener(window, 'load', initialize); 
</script> 

大部分时间警报和地图显示正常。有时显示警报,但地图不显示。有时候警报和地图都不显示。没有任何错误消息被记录。

下面是一个例子:bermudareservation.com/lodgings/sea-song/

我在所有浏览器测试这一点,它显示了相同的行为。我使用WP,所以我尝试使用插件,但同样的事情发生。

如何确保地图每载入一次用户查看页面?

UPDATE:

我摆脱了听众的,而是创造了一个新的问题:有时从来没有内容的负载和加载动画播放下去。

Uncaught ReferenceError: google is not defined 

我不能把这跟踪到行号,因为我看不到的调试工具出于某种原因的JavaScript:当发生这种错误获取输出。

回答

1

我试过了15次左右,每次都加载地图。

但是它需要一些时间,地图将被加载的onload(当所有ressources加载),20-25秒

首先以后有什么对我来说,你应该优化网页加快加载时间,例如有大小> 1MB的多个图像,最高为2.8MB! ,我会说这是一个不适合的网页。将这些图像缩放到需要的尺寸并进行压缩应该将尺寸减小到原来的10%

该页面的加载数据的完整大小约为20MB

此外,您不需要等待load -event,立即致电initialize。通常会加载地图onload以确保地图容器已知,但在您的页面中容器已知,因为初始化地图的脚本放置在地图容器之后。

一般来说,我会建议参观http://yslow.org/性能的准则

+0

好吧,我可以压缩图像。我尝试过的解决方案,但有时谷歌没有定义初始化时被调用 – Cbas