2017-02-04 44 views
0

我在我的AngularJS站点中使用esri地图(javascript)。所有esri资源都在我的本地下载,并使用dojo.js在页面中加载esri映射。当将地图页面切换到另一页面并再次返回到地图页面时,地图被初始化。有没有办法保持地图的状态?例如:缩放级别。任何帮助,将不胜感激。如何在AngularJS站点切换页面时保持esri地图状态

回答

0

一般来说,我可以想出2个选项来处理这个问题。

  1. 在地图外某处保留地图状态,并且任何到地图路径的转换都可以重新创建地图并使用状态信息使其恢复到之前的状态。这就是我们在Open Data(一个Ember应用程序)中所做的。地图状态由可路由的URL参数维护,因此URL http://opendata.arcgis.com/datasets/CAPCOG::schools?geometry=-104.712%2C28.588%2C-90.649%2C31.909&selectedAttribute=INSTR_TYPE通知数据集路径在“geometery”参数中指定的bbox处打开地图,添加“CAPCOG :: schools”图层,并在其上生成智能映射生成的渲染器“INSTR_TYPE”字段。正如你所想象的,如果你有很多地图状态需要管理,那可能会很快变得复杂。我们离开这个b/c,我们只跟踪几个状态位
  2. 将地图移动到可路由视图区域之外的某个<div>,然后在路由中添加自定义逻辑以管理地图(即创建,隐藏,显示,销毁等)。这是一般想法,但您必须根据应用的工作流程定制它。好处是你不需要一次又一次地销毁/重新创建地图。这意味着你不需要跟踪地图的状态,只要它是否应该在任何给定的路线上可见和/或它是否已经创建。缺点是你正在引入一种自定义的状态流,带有副作用等,这些副作用与典型的Angular开发“相悖”。我不知道有任何示例表明这种方法。
相关问题