在AngularJS站点中切换页面时如何保持esri map状态

时间:2017-02-04 10:27:39

标签: angularjs esri

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

1 个答案:

答案 0 :(得分: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>,然后在路径中添加自定义逻辑以管理地图(即创建,隐藏,显示,销毁等)。这是一般的想法,但您必须根据应用程序的工作流程自定义它。好处是您不需要一遍又一遍地销毁/重新创建地图。这意味着你不需要跟踪地图的状态,只要它是否应该在任何给定的路线上可见和/或它是否已经被创建。缺点是你要引入一个带有副作用的自定义状态流,以及对抗谷物的问题。典型的角度发展。我不知道那里有任何证明这种方法的例子。