2

OpenLayers 是否支持根据Level of Details标签 ( <Lod/>) 切换区域的可见性?据我研究和尝试,参考文献中提到的示例 KML 均不适用于 OpenLayers/Google 地图。您可能还对gmaps 中有关 LoD 的类似问题感兴趣,这表明没有人关心细节支持的级别,因此有以下问题:

  • 有没有人找到任何活生生的证据证明细节水平实际上一直在起作用?
  • 如果没有,是否有人知道如何使用 KML 区域,如果它们仍会一次全部加载到浏览器中?
  • 如果仍然没有 - 您是否知道任何方法来解决使用 KML 以智能且有效的方式加载大量功能 (>100000) 的问题?或者,对于某些自定义实现,例如放大/缩小事件处理和手动切换功能的可见性,应该放弃“官方支持”的解决方案?
4

1 回答 1

3

Open Layers 不支持 KML 中的详细程度。正如您将注意到的,在某些功能之上,性能是可怕的——这不是 OpenLayers 的失败,而是现有的浏览器渲染和 DOM 遍历问题。webGL 的出现无疑将大大改善这一点。

OpenLayers 有一种叫做集群策略的东西来解决这个问题,当你缩小时,点会根据你设置的各种参数聚集在一起:参见http://openlayers.org/dev/examples/strategy-cluster.html渲染速度更快。

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

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

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

于 2014-05-18T18:08:41.027 回答