2012-06-19 116 views
0

我有一个谷歌地图嵌入在加载kml文件在https://www.getstable.org/who-can-help/therapist-map-kml使用KmlLayer的网站。有时地图不会加载,我认为是因为谷歌地图有严格的超时时间,并且地图上的某些引脚通常不可点击,但有些没有明确的原因。有谁知道kmlLayer上的超时限制以及如何增加它?也有什么理由为什么有时候某些引脚不可点击(即,当你点击一个引脚时没有InfoWindow出现,并且光标不会变成手)?谷歌地图KmlLayer超时InfoWindow没有显示

下面是显示它的代码(一些字段的模板):

<div id="map_canvas" style="width: 856px;height: 540px;">Loading...</div> 
    <script type="text/javascript" src="{protocol}://maps.google.com/maps/api/js?sensor=false"></script> 

     <script type="text/javascript"> 
      var the_map = { 
       options : { 
         zoom:{embed:zoom_level}, 
         center:new google.maps.LatLng({embed:latitude},{embed:longitude}), 
         mapTypeId: google.maps.MapTypeId.ROADMAP 
       }, 
       geocoder : null, 
       map : null, 
       init : function() { 
        this.geocoder = new google.maps.Geocoder(); 

         $('#map_canvas').delegate('a', 'click', function(event) { 
         window.location.href=$(this).attr('href'); 
         return false; 
         }); 
       },     
       load_map : function() { 
        this.map = new google.maps.Map(document.getElementById("map_canvas"), this.options); 

         query = encodeURI('{site_url}{embed:map_url}');      
        var ctaLayer = new google.maps.KmlLayer(query,{ 
         preserveViewport:true 
        }); 
        ctaLayer.setMap(this.map);  
       } 
      } 
      $(document).ready(function() { 
       the_map.init(); 
       the_map.load_map(); 
      }); 
     </script> 

回答

4

的谷歌服务器有一个未指定超时,但测试显示它是3-5秒。这超时不是你可以影响的。解决方案是让你的服务器响应更快。这个问题几乎总是归结为一个太大的文件(你的不是)或者动态生成KML。你需要优化这个,这可能意味着找到一种方法来创建一个静态的KML文件。

不可点击的功能几乎肯定是您KML的问题。您可以验证您的KML检查此:

您还可以通过在maps.google.com加载它测试你的KML。

+0

谢谢乍得。看起来好像Feed验证器在我的提要中有几个问题,所以我会研究一下。奇怪的是,有时相同的引脚有一天会工作,然后再不工作。这是一个耻辱谷歌有这样一个严格的时间限制。 – Patrick64