我正在构建一个 Web 界面,允许用户从 GeoServer 上传图层并使用数据执行空间操作。因此, map 由预加载的 basemap 和用户加载的数据组成。
我希望用户能够“保存”他的 session ,以便他稍后可以回来并恢复它。我计划在用户进入界面时添加登录菜单。
我的界面完全是用 ExtJS 6 和 OpenLayers3 构建的。
有人已经做过类似的事情,并且可以给我有关如何保存 session 并稍后恢复它的线索吗?
谢谢!
最佳答案
我已经用 ExtJS6 和 OL2 做了类似的事情。
我定义了一个 Ext.panel.Panel,其中包含 OpenLayers map (MapPanel)。 MapPanel 具有 stateful:true、stateId 和一些自定义 stateEvents(中心、缩放和图层可见性)。
然后只需重写 MapPanel 的 getState 和 setState 函数即可保存和恢复 map 状态。
您可以使用 extjs CookieProvider 来存储状态,或者您可以创建一个提供程序将其保存到数据库或其他任何位置..
在 OL 尺寸上,注册 map 事件(添加图层、移动 map 、更改缩放)并将这些更改反射(reflect)到 MapPanel。
请参阅 CookieProvider 和 stateful 的 extjs 文档,了解如何实现它。
关于javascript - "Saving"OpenLayers session 以便可以恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35562659/