天天看點

ArcGIS動态圖層問題

以下内容為項目上原來的實作方式,即通過指定動态工作空間中的shapefile渲染圖層,新的實作方式将改為使用GeoJSON。

==========================================

使用動态圖層服務 ——即帶有“動态工作空間”的地圖服務,如下圖

ArcGIS動态圖層問題
ArcGIS動态圖層問題

通路REST URL,可以看到有如下内容:

ArcGIS動态圖層問題

用戶端使用arcgis api for javascript中的esri/layers/ArcGISDynamicMapServiceLayer

new ArcGISDynamicMapServiceLayer(地圖服務的REST URL, { "id": "mymaplayer" });
           

根據資料源名稱(即shp檔案名)渲染。

shapefile包含以下幾種格式的檔案:

ArcGIS動态圖層問題

==================================================================

調用arcgis server服務時,會先鎖定相關的shp檔案,但是由于我們項目的業務邏輯,每次調用服務,需要先清空工作空間,再生成shapefile,這樣就會碰到一個問題,就是被鎖定的檔案删除不了,如下圖:

ArcGIS動态圖層問題
ArcGIS動态圖層問題

開發環境使用的是ArcGIS 10.1 for Server (Windows),沒有這個檔案被鎖的問題。

生産環境使用的是ArcGIS 10.4.1 for Server (Windows),就有這個問題。

經過與ESRI客服溝通,他們說高版本上才加的這個檔案鎖功能,解決方案的話可以使用ArcGIS REST API把服務重新開機。

第一步:生成token
http://IP:PORT/arcgis/admin/generateToken
第二步:停止服務
http://IP:PORT/arcgis/admin/services/hmcs/dynamicSpace.MapServer/stop
第三步:啟動服務
http://IP:PORT/arcgis/admin/services/hmcs/dynamicSpace.MapServer/start
           

=============================================================================

官方API文檔

如果調用的是arcgis/admin相關api

參考:https://developers.arcgis.com/rest/enterprise-administration/server/overview.htm

如果調用的是arcgis/rest相關api

參考:https://developers.arcgis.com/rest/services-reference/get-started-with-the-services-directory.htm

或者通路ArcGIS Server部署的位址:http://IP:PORT/arcgis/sdk/rest/

參考連結:

https://www.cnblogs.com/luwl/p/8966325.html

後話:

關于shapefile加鎖被占用的問題,可以參考《關于arcsom.exe和arcsoc.exe以及性能優化》加深了解

繼續閱讀