OpenLayers支持KML中的详细级别

时间:2014-05-16 18:10:55

标签: performance openlayers kml region level-of-detail

OpenLayers是否支持根据Level of Details代码(<Lod/>)切换区域的可见性?就我的研究和尝试而言,所提到的参考文献中的示例KML都不适用于OpenLayers / Google Maps。您可能也对similar question regarding LoD in gmaps感兴趣,这表明无人关心关于细节支持的级别,因此问题:

  • 是否有人发现任何生活证据表明某些细节确实有效?
  • 如果没有,有没有人知道如何使用KML区域,如果它们仍会一次性加载到浏览器中?
  • 如果还没有 - 您是否知道如何使用KML以智能有效的方式解决加载大量功能(&gt; 100000)的问题?或者也许应该删除“官方支持”的解决方案,以进行一些自定义实施,例如放大/缩小事件处理和手动切换功能的可见性?

1 个答案:

答案 0 :(得分:2)

“打开图层”不支持KML中的详细程度。正如您将注意到的,性能在一定数量的功能之上是可怕的 - 这不是OpenLayers的失败,而是现有的浏览器呈现和DOM遍历问题。毫无疑问,webGL的出现将大大改善这一点。

OpenLayers有一个称为集群策略的东西可以解决这个问题,根据你设置的各种参数,在你缩小时将点聚集在一起:参见http://openlayers.org/dev/examples/strategy-cluster.html使渲染更快。

如果您可以更好地控制数据的来源,您可以在服务器端创建不同的图层,并在OpenLayers中将它们作为单独的矢量图层加载,但使用不同的maxResolution级别来控制它们是否被绘制。

正如sfletche建议的那样,你也可以将kml预渲染成不同缩放级别的图块或创建一个wms,这样工作就完成了服务器端,你最终得到了一个栅格。如果您确实需要在客户端查询这些功能,这种方法对您没什么帮助。

在不了解您的设置和使用要求的情况下,很难提出明确的建议。