ArcGIS Server管理工具之批量發布動態地圖服務工具.md


友好閱讀鏈接:(http://swj.me/2015/08/26/batchPublishtools/)

update0918:

  1. 修復了創建鏈接文件時而出錯的bug
  2. 修復了在24011的警告已處理的情況下,依然出現提示的異常。
  3. 將多個腳本文件,壓縮成一個腳本文件。壓縮后的腳本文件名稱為Publishservice.py,使用如下命令執行工具
python Publishservice.py
  1. 重新創建了一個repo,更改了腳本git 存放的地址,新地址如下:
    BathPublishMapServices

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

介紹

在日常工作中,經常碰到用戶多次訴求需要批量發布服務。esri官方發布方式,只能是通過arcMap連接server去逐個發布。但是其也為開發者提供了批量發布服務兩種方式:一種是通過arcpy的腳本,一種是通過其提供的arcgis admin api

本工具使用arcpy的形式實現,並使用cmd 命令行執行。一開始通過tkinter ui的形式進行實現。但是最后發現tkinter太不人性,果斷棄之。

環境

  • windows
  • python 2.7.x
  • arcpy 10.1+

實現流程

實現流程即是arcgis for server的發布流程

  1. 輸入GIS服務器的信息
    包括GIS服務器的IP,站點管理員用戶名和密碼,mxd文件所在的文件夾,當集群環境時,指定服務發布的cluster,默認是的default,服務發布到server的目錄名,默認是root
  2. 創建server鏈接文件
    在當前腳本執行的目錄下,生成一個后綴為.ags 的server鏈接文件
  3. 遍歷mxd文件
    遍歷mxd文件夾中的mxd文件,並檢查該文件是否存在數據源損壞
  4. 生成sddraft文件
  5. 過渡sd文件
  6. sd文件上傳到服務器端

使用

去下面地址下載腳本。將整個BatchPublishMapService 目錄下載

運行cmd,cd 到BatchPublishMapService。執行如下腳本. 如果出現python是無效的命令的錯誤。請配置環境變量

python BatchPublishMapService.py

根據命令行中的提示輸入相關的參數。如下圖所示:

發布過程的詳細信息,以及分析操作的信息輸出

在manager中查看批量發布的服務

注意

  1. 服務名為mxd文件名。如需要指定服務名,請將mxd文件名改為對應的文件名
  2. 輸入的用戶名和密碼為站點管理員的用戶名和密碼
  3. 該程序沒有注冊數據源的功能,當數據源路徑,已經注冊,數據不拷貝到服務器上。如果沒有注冊,數據則默認拷貝到服務器
  4. 該工具沒有打包。本想打包成exe,但是arcpy打包存在問題。

后續更新

由實際反饋和使用情況決定

下載地址

BathPublishMapServices


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM