如何使用python发布地图服务

2021-01-05 11:16发布

环境:pycharm编辑器;ArcGIS Server10.6.1

思路:

(1)调用arcpy.mapping中的CreateMapSDDraft()函数,将地图文档文件(.mxd)转换为服务定义草稿文件(.sddraft),该文件由一个地图文档、服务器信息和一组服务属性组合而成;

(2)调用StageService Tool(.sd,过渡服务工具),编译能成功发布GIS 资源所需的所有必要信息;

(3)使用Upload Service Definition Tool(上传服务定义工具)上传服务定义文件,并将其作为GIS服务发布到指定的GIS服务器。

请注意,完成发布服务的操作需要具备两个条件:一是需要访问一个ArcGIS Server的实例,二是要有必要的发布服务的权限。

脚本:

# -*- coding: utf-8 -*-
#!/usr/bin/python
 
import arcpy
from arcpy import env
server_username='siteadmin'
server_password='123456'
env.workspace="E:/learnservice/dynamicservice"
wrkspc="E:/learnservice/dynamicservice/"
 
#创建server连接
connection_type='ADMINISTER_GIS_SERVICES'
out_folder_path="E:/learnservice/dynamicservice"
out_name='ajServer.ags'
server_url='http://localhost:6080/arcgis/admin'
use_arcgis_desktop_staging_folder=False
staging_folder_path=out_folder_path
arcpy.mapping.CreateGISServerConnectionFile(connection_type,out_folder_path,out_name,server_url,
                                            'ARCGIS_SERVER',use_arcgis_desktop_staging_folder,
                                            staging_folder_path,server_username,server_password,
                                            "SAVE_USERNAME")
#将mxd文档变为服务定义草稿(.sddraft)文件,服务定义草稿文件会在服务定义文件(sd)后自动删除
mapDoc=arcpy.mapping.MapDocument(wrkspc+'ServiceMXD.mxd')
service_name='BeijingSd'
sddraft=wrkspc+service_name+'.sddraft'
sd=wrkspc+service_name+'.sd'
summary='blog use sd'
tags='beijing,map,dynamic'
con=wrkspc+out_name
analysis=arcpy.mapping.CreateMapSDDraft(mapDoc,sddraft,service_name,'ARCGIS_SERVER',
                                        con,True,'blog',summary,tags)
if analysis['errors']=={}:
    arcpy.StageService_server(sddraft, sd)
    arcpy.UploadServiceDefinition_server(sd, con)
    # arcpy.SignOutFromPortal_server()
else:
    print analysis['errors']


作者:gislaozhang

链接:https://blog.csdn.net/gislaozhang/article/details/90900227

来源:CSDN
著作权归作者所有,转载请联系作者获得授权,切勿私自转载。