通过ArcPy编写代码实现自动发布ArcGIS地图服务

一.条件:

ArcGIS Desktop10.4/ArcGIS Server10.4

二.步骤

1.通过arcmap将矢量文件保存为mxd文件;

2.创建.ags文件

创建完之后在connetions文件夹下就有了

3.执行代码

import arcpy 
#定义一个局部变量
wrkspc="E:/data/mxd/"
#引入mxd文件路径
mapDoc = arcpy.mapping.MapDocument(wrkspc + 'fw.mxd')
#提供一个ArcGIS Server连接文件路径
con = wrkspc+'/connections/arcgis on localhost_6080 (admin).ags'
#设置服务名及其他细节
service = 'FW'
sddraft = wrkspc + service + '.sddraft'
sd = wrkspc + service + '.sd'
summary = 'fw'
tags = 'fw'
#创建一个服务定义草稿 服务定义 (.sd) 可将服务封装成单个可转移文件,选择性地包含源 GIS 数据。
arcpy.mapping.CreateMapSDDraft(mapDoc, sddraft, service, 'ARCGIS_SERVER', con, True, None, summary, tags)
#分析服务定义草稿
analysis = arcpy.mapping.AnalyzeForSD(sddraft)
print "The following information was returned during analysis of the MXD:"
for key in ('messages', 'warnings', 'errors'):
  print '----' + key.upper() + '---'
  vars = analysis[key]
  for ((message, code), layerlist) in vars.iteritems():
    print '    ', message, ' (CODE %i)' % code
    print '       applies to:',
    for layer in layerlist:
        print layer.name,
    print
#Stage and upload the service if the sddraft analysis did not contain errors
if analysis['errors'] == {}:
    # 执行StageService.创建一个服务定义。
    arcpy.StageService_server(sddraft, sd)
    #上传服务定义工具会将服务定义上传到服务器并进行发布
    arcpy.UploadServiceDefinition_server(sd, con)
    print "Service successfully published"
else: 
    print "Service could not be published because errors were found during analysis."
print arcpy.GetMessages()

4.效果

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值