ArcGIS二次开发——Arcpy批量自动化发布地图服务

参考博客

补充:在发布地图服务前,首先需要连接到ArcGIS for Server服务器,需要利用到arcpy.mapping.CreateGISServerConnectionFile接口,,在ArcGIS的帮助文档中也有详细说明,代码如下:

import arcpy

outdir = r'C:\Users\user\Desktop\SeaGIS\Server'
out_folder_path = outdir
out_name = 'connection.ags'
server_url = 'https://localhost:6443/arcgis/admin'
use_arcgis_desktop_staging_folder = False
staging_folder_path = outdir
username = 'siteadmin'
password = 'arcgis'

arcpy.mapping.CreateGISServerConnectionFile("PUBLISH_GIS_SERVICES",
                                            out_folder_path,
                                            out_name,
                                            server_url,
                                            "ARCGIS_SERVER",
                                            use_arcgis_desktop_staging_folder,
                                            staging_folder_path,
                                            username,
                                            password,
                                            "SAVE_USERNAME")

相关函数说明见ArcGIS帮助文档

import arcpy
import os


def publishServer(mxd):
    # define local variables
    wrkspc = 'C:/Users/user/Desktop/SeaGIS'
    mapDoc = arcpy.mapping.MapDocument(wrkspc + '/mxds' + '/{}'.format(mxd))
    con = wrkspc + '/Server' + '/connection.ags'
    service = mxd[0:-4]
    sddraft = wrkspc + '/Server' + '/' + service + '.sddraft'
    sd = wrkspc + '/Server' + '/' + service + '.sd'
    summary = '{} Ser Wave'.format(mxd[0:-4])
    tags = 'Sea Wave'

    # create service definition draft
    analysis = arcpy.mapping.CreateMapSDDraft(mapDoc, sddraft, service, 'ARCGIS_SERVER',
                                              con, True, 'SeaGIS', summary, tags)

    # stage and upload the service if the sddraft analysis did not contain errors
    if analysis['errors'] == {}:
        # Execute StageService
        arcpy.StageService_server(sddraft, sd)
        # Execute UploadServiceDefinition
        arcpy.UploadServiceDefinition_server(sd, con)
        print '{} has been published!'.format(mxd)
    else:
        # if the sddraft analysis contained errors, display them
        print analysis['errors']


mds = os.listdir('./mxds')
for md in mds:
    publishServer(md)
print 'finished!'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值