目錄
- 1 前言
-
- 1.1 簡介
- 1.2 适用場景
- 2 動态圖層
-
- 2.1 共享地圖服務
- 2.2 動态工作空間添加
-
- 2.2.1 企業級資料庫
- 2.2.2 shapefile檔案夾
- 2.2.3 栅格檔案夾
- 2.2.4 檔案地理資料庫
- 2.3 釋出服務
- 2.4 Server端設定
- 2.5 效果展示
-
- 2.5.1 企業級資料庫
- 2.5.2 shapefile檔案夾
- 2.5.3 栅格檔案夾
- 2.5.4 檔案地理資料庫
- 2.6 服務調用
-
- 2.6.1 本地服務
- 2.6.2 托管服務
- 2.6.3 圖層渲染
- 2.6.4 測試案例
- 2.7 故障排查
- 3 參考資料
1 前言
1.1 簡介
ArcGIS Server将GIS資源以服務的方式釋出,能夠讓更多的人在Web上浏覽、使用。不過,諸如氣象、環保等方面的資訊是實時變化的,按照之前正常的方法,我們先要将最新獲得的資訊組織成地圖文檔後再對外釋出服務,這樣一來隻要有更新的資訊就要重複前面的工作,不僅地圖服務維護的工作量比較大,而且無法讓公衆在第一時間了解這些資訊。
動态圖層并不是在Server端直接添shape、raster、filegdb、database等資源,它需要依附于一個開啟動态圖層的地圖服務。然後,把資料資源所在位置注冊為這個地圖服務的動态工作空間。最後,在Web端調用時指定圖層關聯的資料源以圖層符号化等。
1.2 适用場景
根據需要選擇是否允許伺服器的用戶端動态更改地圖服務中的圖層外觀和行為。要确定哪些圖層顯示在地圖中、圖層符号系統、圖層順序和位置以及标注等,可通過使用動态圖層在伺服器端實作。是以,适用于以下兩種情況:
1)改變現有圖層:符号,渲染方式和版本,這些都可以通過用戶端請求的時候給定相應的參數來進行設定,進而來達到輕易改變地圖的效果。
2) 添加地圖服務中沒有的圖層:添加的資料可以是矢量資料也可以栅格資料,還可以是一個通過sql查詢出來的結果,或者是兩個表關聯的關聯結果。矢量的資料可以是shapefile,filegdb,或者sde中的資料。栅格資料可以是esri能直接識别的栅格資料格式。
2 動态圖層
2.1 共享地圖服務
2.2 動态工作空間添加
2.2.1 企業級資料庫
選擇了資料庫,則可以指定想要使用的資料庫連接配接并單擊導入 > 浏覽。可以選擇鎖定使用者可以通路的資料庫版本。為此,選擇鎖定版本。
2.2.2 shapefile檔案夾
選擇了 Shapefile,則輸入包含想要使用的 Shapefile 的檔案夾的路徑。
2.2.3 栅格檔案夾
選擇了栅格,則輸入包含想要使用的栅格的檔案夾的路徑。
2.2.4 檔案地理資料庫
選擇了檔案地理資料庫,則輸入想要使用的檔案地理資料庫的路徑。請記住,稍後需要将圖層添加到該地理資料庫。
2.3 釋出服務
2.4 Server端設定
1)登陸ArcGIS Server Manager,并打開已釋出的地圖
2)添加動态工作空間,并點選REST URL連結
3)驗證動态工作空間是否釋出
4)驗證動态圖層是否可以成功釋出
{
//id自設
"id": 1,
"source": {
"dataSource": {
//工作空間id
"workspaceId": "Test00",
//源資料名
"dataSourceName": "ltest.sde.test",
//栅格raster,矢量table
"type": "raster / table"
},
//mapLayer對已有圖層動态修改,dataLayer向動态工作空間疊加服務圖層
"type": "mapLayer / dataLayer"
}
}
5)點選“導出地圖”(續2.4第三步)
6)導出動态地圖
2.5 效果展示
2.5.1 企業級資料庫
1)準備資料
2)釋出地圖服務,參見本文2.1-2.3
3)向動态工作空間新增資料并測試
矢量資料 栅格資料
2.5.2 shapefile檔案夾
1)準備資料
2)釋出地圖服務
3)向動态工作空間新增資料并測試
2.5.3 栅格檔案夾
1)準備資料
2)釋出地圖服務
3)向動态工作空間新增資料并測試
2.5.4 檔案地理資料庫
與企業級資料庫類似。
2.6 服務調用
3.x與4.x版本源碼迥異,參考API指南進行編輯
2.6.1 本地服務
前往ArcGIS API for JavaScript下載下傳頁擷取需要的API版本,并将其解壓到本地項目中。
2.6.2 托管服務
托管服務直接引用ArcGIS線上js類庫,優點為不用下載下傳API檔案,缺點為偶爾可能加載較慢。
2.6.3 圖層渲染
渲染器可以為特征圖層或者圖形圖層定義一組符号,ArcGIS API For JS中有五種不同的渲染器,SimpleRenderer、ClassBreaksRenderer、UniqueValueRenderer、DotDensityRenderer和TemporalRenderer五種,無論那種渲染都要建立渲染示例,定義渲染符号,最後将渲染器添加到圖層,詳細内容參見ArcGIS API For JS 之render(符号渲染)。
2.6.4 測試案例
感謝網友無私的分享,大家記得一定star哈!
https://github.com/xinligis/AGS-JSAPI-Samples/tree/master/動态圖層
2.7 故障排查
1)釋出地圖服務時,提示“無法注冊檔案夾到server上”
解決方案: 把檔案夾注冊到server上目的是讓server從該檔案夾通路資料,那麼就得保證server對data具有通路權。是以必須設定data共享賬戶中包括ArcGIS Server Account。
2)動态圖層工作空間為企業級資料庫,新增動态圖層驗證錯誤
解決方案: 查證資料庫連接配接字元串資訊,若連接配接的資料庫不比對則重新導入
3)動态空間栅格圖層,前端顯示配色不正确
解決方案: 參考關于ArcGIS動态圖層空間内栅格資料,JS前端顯示顔色不正确的解決方案,動态空間檔案夾的栅格資料,ArcGIS Server僅僅做最基礎的顯示,不做任何拉伸。是以,需要将栅格資料拉伸處理并存入到動态工作空間。
3 參考資料
- 關于動态圖層
- 使用動态圖層在伺服器端渲染
- arcgis server 10.1 釋出動态圖層展示海量及頻繁更新的資料步驟
- ArcGIS Server10.1 動态圖層服務
- 【轉】ArcGIS Server 10.1 動态圖層
- 【轉】ArcGIS Server 10.1 動态圖層—添加栅格
- ArcGIS Server 10.1動态圖層 以及Windows Phone/Silverlight用戶端實作
- 下載下傳并部署 ArcGIS API for JavaScript 4.10
- 初識:ArcGIS API for JavaScrip
- ArcGIS_api_for_js_添加動态圖層
- ArcGIS API For Javascript之動态圖層
- arcgis server for javacript 動态建立矢量、栅格圖層