javascript - "Saving"OpenLayers session 以便可以恢复

标签 javascript session extjs cookies openlayers-3

我正在构建一个 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/

相关文章:

javascript - Evil Eval 的替代品——关系运算符

javascript - firstElementChild 在 Internet Explorer 7 中不起作用...我有哪些选择?

javascript - 在 HTML JavaScript 中动态追加 Div

session 检查中的 PHP 5.4 错误

javascript - 定义中尖括号中类名的用途是什么?

javascript - 当用户在 div 外部单击时调用函数

java - 无法访问 App Engine 开发服务器上的 servlet 过滤器中的 session 数据

PHP Sessions 在下一页消失

javascript - 在 extjs 中创建侧面可折叠面板导航是正确的方法吗

extjs - Ext JS树,在扩展根节点之前,childNodes为空(加载完整树结构)