標籤:
從webapp目錄可以看出地圖歸mapManager處理,所以在MapManager.js中找關於載入地圖的方法,很容易在裡面找到showMap方法:下面有另一個方法_showMap方法,查看定義,發現裡面是根據設定檔裡面是3D還是2D的方式載入地圖的,因為現在只能用2D的所以直接跳到else裡面,在這個_show2DWebMap裡面又是根據設定檔裡面是否有itemID(online上的地圖對應的ID)來載入地圖的,系統預設會給app指定一個itemID,而我們需要做的就是不用itemID,用我們本地server上的資料;現在查看定義,跳到_show2DLayersMap方法中,這裡面根據設定檔的mapOptions(地圖範圍)來建立地圖(沒有地圖資料),,然後通過遍曆config來建立地圖,查看定義, 發現是對設定檔中的map裡面的欄位進行判斷,然後來建立地圖的,這裡的cb(layerConfig,i)===lang.hitch(this, function(layerConfig) 再查看createLyer()的定義,發現要遍曆config裡面的很多欄位,現在就需要為config檔案添加載入本機資料所需要的欄位和資料了。現在的layerConfige就是一個數組,因為這次只有與一副地圖所以只能遍曆一次,看到第一個迴圈for (var p in layerConfig)要迴圈keyProperties那麼就要先添加‘label‘, ‘url‘, ‘type‘, ‘icon‘, ‘infoTemplate‘, ‘isOperationalLayer‘這幾個屬性接下來又判斷圖層的infoTemplate,可以看到infoTemplate中的一些屬性具體有title,content,width,height最重要的載入地圖是要有地址的,通過合格可以看到,設定檔裡面應該有url,所以載入一個然後還有一個屬性是bool值至此所有屬性已載入完畢如下:要運行本地地圖就要把載入online上的可能去了,所以在設定檔裡找到itemId,將他制空現在運行就可以看到結果了:
修改webapp底圖