@
1 前言
1.1 簡介
動態圖層並不是在Server端直接添shape、raster、filegdb、database等資源,它需要依附於一個開啟動態圖層的地圖服務。然后,把數據資源所在位置注冊為這個地圖服務的動態工作空間。最后,在Web端調用時指定圖層關聯的數據源以圖層符號化等。
1.2 適用場景
根據需要選擇是否允許服務器的客戶端動態更改地圖服務中的圖層外觀和行為。要確定哪些圖層顯示在地圖中、圖層符號系統、圖層順序和位置以及標注等,可通過使用動態圖層在服務器端實現。因此,適用於以下兩種情況:
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 動態創建矢量、柵格圖層