利用ArcEngine開發地圖釋出服務,將mxd文件一鍵釋出成wmts,並根據需要對地圖進行空間查詢,返回客戶端geojson

SimpleGIS發表於2022-05-19

一直想開發一個軟體取代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。

http://www.simplemap.com.cn:6466/SimpleGIS/ogc/services/rongxian/WMTS,總體來說,瀏覽速度還可以,為支援更快的瀏覽速度,也可以使用我寫的切片地圖下載軟體將它下載成離線地圖資料庫,再發布WMTS,這樣速度會更快一點。

 

相關文章