2011-03-02 69 views
0

我想添加一个带有一些自定义标记的地图到我的项目。在本地主机上一切正常,但是当我将代码发送到生产服务器时,我得到了'对不起,我们没有按照要求的比例绘制这个区域的地图'(或类似的东西)。这是代码:谷歌地图显示错误信息,而不是地图

<script type='text/javascript'> 
    var map; 
    var mapStart = function(){ 
     if(GBrowserIsCompatible()){ 
      map = new GMap2(document.getElementById("map")); 
      map.setCenter(new GLatLng(51.961869,19.134521),6); 
      map.addControl(new GLargeMapControl()); 
      var ikona1 = new GIcon(); 
      ikona1.image = "{{MEDIA_URL}}images/map_icon_1.png"; 
      ikona1.iconSize = new GSize(36, 30); 
      ikona1.infoWindowAnchor = new GPoint(16,16); 
      ikona1.iconAnchor = new GPoint(16,16); 
      var data_map = {{ properties|safe }}  
      map.enableDoubleClickZoom(); 
      map.enableContinuousZoom(); 
      var bounds = new GLatLngBounds(); 
      var maxlng =0; 
      var maxlat=0; 
      var minlng=0; 
      var minlat=0; 
      for (var i=0; i < data_map.length; i++){ 
       var pos_lat = parseFloat(data_map[i]['lat']); 
       var pos_lon = parseFloat(data_map[i]['long']); 
       addMarker(pos_lat, pos_lon,{icon:ikona1}, data_map[i]['info_box'] 
       ); 
       if (pos_lat < minlat || minlat==0){ minlat = pos_lat} 
       if (pos_lat > maxlat || maxlat==0){ maxlat = pos_lat} 
       if (pos_lon < minlng || minlng==0){minlng = pos_lon} 
        if (pos_lon > maxlng || maxlng==0){maxlng = pos_lon} 
       lat = minlat + ((maxlat - minlat)/2); 
       lng = minlng + ((maxlng - minlng)/2); 
       var allpoints = new GLatLng(lat,lng); 
       bounds.extend(allpoints); 
      } 
      map.setZoom(map.getBoundsZoomLevel(bounds)-2); 
      map.setCenter(bounds.getCenter()); 
     } 
    } 

    var addMarker = function(lat, lon, options, info_box_html){ 
     point = new GLatLng(lat,lon); 
     var marker = new GMarker(point, options); 

     GEvent.addListener(marker, "click", function() { 
      marker.openInfoWindowHtml(info_box_html); 
     }); 

     map.addOverlay(marker); 
    } 

    $(document).ready(function(){ 
     mapStart(); 
    }); 
    window.onunload = function(){ GUnload()}; 
</script> 

和我有以下进口(以产生新的密钥):

<script src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=ABQIAAAA2YOYLBVnylQ7NK445E1_gxQFK8hZs27CqIA3jAe_qRgIGP9GQBTFZjebH-xe-6vEjhK0Pa9agV_Mpg"></script>

data_map有适当的形式,我已经测试了本地。另外,当我评论了除创建地图和添加控制之外的所有内容时,我都清除了灰色屏幕任何人都知道这个错误?

+0

如果可以,请切换到Google Maps v3。 – hsz 2011-03-02 21:17:45

+0

仍然是相同的,不幸的是 – marks34 2011-03-02 21:48:14

+0

好吧,看起来经纬度参数在生产服务器上被破坏。尽管如此,当我更新它们时,没有显示地图但灰色屏幕。 – marks34 2011-03-02 22:27:26

回答

0

您有有效的坐标。我想知道你是否发送map.setZoom一个有效的值。如果不设置缩放级别,会发生什么?

+0

没有任何变化 – marks34 2011-03-02 21:49:12

+0

清除浏览器缓存? – 2011-03-03 03:13:54