【问题标题】:Preload a layer during page load with Leaflet在页面加载期间使用 Leaflet 预加载图层
【发布时间】:2016-03-02 16:03:31
【问题描述】:

我有一个带有五个 geojson 图层(baseMaps)的传单地图,我通过 L.control 控制它们。我的第三层包含许多可视化点,因此当我单击它时,加载需要很长时间。

有没有办法专门预加载这一层,即使整个页面需要多一点时间来加载?

谢谢

【问题讨论】:

  • 如果你的图层组有成百上千个点,那就是DOM渲染过程需要时间。您可能对集群或画布插件感兴趣以避免这种情况。
  • 感谢您的回答,我有 4 层只有 chrolopleth 地图,只有 1 层有 ~8000 点。我忘了提,但我的观点已经聚集了。
  • 如何管理拥挤的图层加载?请分享一些代码(奖励点:在线重现您的问题,例如使用 JSFiddle、JSBin、Plunker ......)以便我们为您提供帮助。
  • 另外,您使用哪个集群插件,它的版本是多少?请注意,Leaflet.markercluster 插件在其最新版本中获得了重大的性能改进。
  • 我正在使用 0.4.0 版本的 leaflet.markercluster 插件。我会设置一个jsfiddle!

标签: javascript leaflet layer preload


【解决方案1】:

Leaflet.markercluster 仅在添加到地图后才计算聚类(它需要知道地图配置才能处理聚类)。

正如问题 cmets 中所说,第一步是使用该插件的最新版本,因为与 0.4.0 版本相比,它具有重大的性能升级。

如果您仍然希望插件提前处理集群,以便用户在第一次点击图层控件时不必等待,解决方法是将您的集群分层添加到地图和立即删除它:这样,在初始化时就处理了聚类,并且一旦用户想要看到它,该层就可以显示了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2015-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多