Leaflet.MarkerCluster.LayerSupport在页面重新加载上存储可见图层

时间:2017-11-01 16:16:29

标签: javascript php html leaflet leaflet.markercluster

我很难澄清这篇文章......

我正在使用以下插件扩展Leaflet地图:

  • Leaflet.MarkerCluster
  • Leaflet.MarkerCluster.LayerSupport

我的页面有一个标题div和一个map div。标头包含一个HTML 5表单,它传递GET变量,重新加载页面,并执行检索我的引脚/集群的SQL Server查询。

每次提交表单时,页面都会重新加载,并重新检查Leaflet.MarkerCluster.LayerSupport插件的可见图层(请参阅链接图片中的红色矩形)。

基本上,当页面刷新时,总是会检查红色矩形中的复选框,但我希望它们加载的状态与单击表单提交按钮时的状态相同

My Map

有没有办法轻松存储cookie或传递保存哪些图层(可见)的变量,并在重新加载页面时将其加载到该状态?图层控件主要由插件生成,而不是我自己的代码。

Control Code

非常感谢,

尼克

1 个答案:

答案 0 :(得分:0)

如果使用标准的Leaflet图层控件,它会监视添加到地图或从地图中删除的图层,并相应地勾选/取消选中复选框。

因此,只需要正确地重新添加(或者在您的情况下,添加)以前未被用户取消选中的图层。

要检索从地图中取消选中/删除哪些图层,您可以选择实施。由于您已经提交了HTML表单,因此您可以发送一些额外的值来告知这些已删除的图层,并将它们发送回新页面中的客户端。

更现代的方法是避免刷新页面并使用AJAX方案。

但是,查看截图,看起来您可能没有使用标准的图层控件。在这种情况下,它将取决于该控件的实际工作方式。