懒惰/需求加载谷歌地图或谷歌地球插件中的KML?

时间:2011-04-15 22:56:52

标签: javascript kml google-earth-plugin

启动Google地图或Google地球插件实例后,是否可以延迟加载KML文件?也许有一个“边界框”事件可以用来排队所需的KML文件?

编辑=>找到答案:

找到这个小小的位(http://code.google.com/apis/maps/documentation/javascript/events.html):

  

注意:如果您尝试检测a   在视口中更改,请务必使用   特定的bounds_changed事件   而不是成分zoom_changed   和center_changed事件。因为   Maps API会触发后面这些事件   独立地,getBounds()可能不会   报告有用的结果,直到之后   视口已经权威地改变了。   如果你希望在这之后得到bind()   一个事件,一定要听   而是改变了bounds_changed事件。

...这导致我在此页面上显示“视口标记管理”:http://code.google.com/apis/maps/articles/toomanymarkers.html#viewportmarkermanagement

建议这个基本想法:

  google.maps.event.addLisener(map, 'idle', showMarkers);

  function showMarkers() {
    var bounds = map.getBounds();

    // Call you server with ajax passing it the bounds

    // In the ajax callback delete the current markers and add new markers
  }

同样,对于GEP,有这样的:

  

GEView.getViewportGlobeBounds()
  完全返回一个边界框   包含地球的区域   目前可见。退回的方框   将比严格的更大   可见,如果有必要的话   包括可见的一切。

     

返回对应的KmlLatLonBox   到当前的边界框   viewport或null如果没有部分   地球是可见的

1 个答案:

答案 0 :(得分:1)

是的,KML区域允许仅在数据落入用户视图并占据屏幕的某个部分时才加载和绘制数据。因此,如果您在Google地球插件或Google地图Apis中使用KML,则无需自行烹饪......

请参阅有关使用Kml区域的优秀文档: http://code.google.com/apis/kml/documentation/regions.html

随着kmlRegion接口参考 http://code.google.com/apis/kml/documentation/kmlreference.html#region