利用ArcEngine開發地圖發布服務,將mxd文檔一鍵發布成wmts,並根據需要對地圖進行空間查詢,返回客戶端geojson
- 2022 年 5 月 20 日
- 筆記
一直想開發一個軟體取代ArcGIS Server,該軟體使用ArcEngine開發,以Windows Service形式發布,部署在服務端上,解決wmts地圖服務發布和空間查詢的問題,經過不斷的研究、知識積累和測試,已經實現,現將思路整理如下:
首先,Arcgis server優點和缺點就不說了,我要實現的是一個小型的gis server,這個server將使用ae開發,所以只需在伺服器上安裝AE Runtime即可。軟體的功能主要包括以下兩點:
1、將mxd文檔直接發布成wmts服務
2、前端用戶使用屬性查詢或空間查詢,服務端返回geojson
為完整介紹開發思路,我將一一介紹這兩個功能。
一、發布MXD文檔為WMTS
這個功能主要包括三個要點:
1、利用ArcEngine和WCF發布服務,前期經過測試,已經實現,這個服務可以託管於IIS,也可以託管於windows services。
2、了解WMTS規範,利用WCF開發相應服務
由於前幾年一直在開發在線地圖的瀏覽、下載、格式轉換、地圖服務發布軟體(這個軟體後期再介紹,目前可以除支援在線地圖的下載外,還支援更多格式的地圖發布成wmts,例如基於sqlite的自有地圖切片資料庫發布,發布arcgis 切片地圖,利用gdal發布tif、jpg,png等影像、發布tpk等),所以對WMTS的規範已經很熟悉,所以利用WCF開發相應介面也未遇到難題
3、根據WMTS規範中的gettile方法,利用ae和動態快取機制生成切片,實現wmts地圖服務發布。
該功能的要點就是根據gettile中xyz的值,計算出切片地圖的範圍,利用AE裁切出地圖。
二、前端用戶使用屬性查詢和空間查詢得到geojson
由於第一個功能中,已經使用ArcEngine開發了相應的地圖服務,可以支援類似於桌面端的GIS操作,所以真正要做的工作就是將查詢結果轉換成geojson,前端根據geojson動態繪製查詢結果。
這個小型的gis server目前部署很方便,伺服器只需安裝ArcEngine Runtime,將mxd文檔和對應的數據複製過去即可,後期準備開發一個網站來支援用戶上傳MXD,直接發布地圖服務。目前提供一個我測試用的地籍圖發布的WMTS。
//www.simplemap.com.cn:6466/SimpleGIS/ogc/services/rongxian/WMTS,總體來說,瀏覽速度還可以,為支援更快的瀏覽速度,也可以使用我寫的切片地圖下載軟體將它下載成離線地圖資料庫,再發布WMTS,這樣速度會更快一點。