2017-02-04 45 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開發「相悖」。我不知道有任何示例表明這種方法。
相關問題