zoukankan      html  css  js  c++  java
  • arcpy自动发布服务01

    因为太多的服务需要发布,后期考虑使用arcpy脚本自动发布服务。

    以下是预研记录。

    arcgis server 10.2.2 的python是64位的,服务器上安装vscode ,要选择使用64位版本的python ,并参考如下配置

      

    其次,arcgis server发布服务的数据源需要是 file GeoDatabase,或者是SDE 的,而不能是 mdb或者shapefile 。看官方文档:

    不然就会报这样的错误, 不可访问,其实数据源都可以连接。

     初始版本

    #coding=utf-8
    import arcpy
    import arcpy.mapping as mapping
    import os
    folder=r'd:out'
    files=os.listdir(folder)
     
    for f in files:
        if not f.endswith(".mxd"):
            continue
        service=f.replace(".mxd","")
        mxdpath=os.path.join(folder,f)
        print f
        sddraft=mxdpath.replace(".mxd",".sddraft")
        mxd=mapping.MapDocument(mxdpath)
        mapping.CreateMapSDDraft(mxd,sddraft,service) #将地图文档 (.mxd) 文件转换为服务定义草稿 (.sddraft) 文件。
        analysis=mapping.AnalyzeForSD(r'd:out	est3.sddraft')  #分析服务定义草稿 (.sddraft) 文件以便在将服务定义草稿文件转换为服务定义 (.sd) 文件之前确定适用性和潜在性能问题的来源           
        sd=mxdpath.replace(".mxd",".sd")
        insever=r'connection.ags'
        if analysis['errors']=={}:
            arcpy.StageService_server(sddraft,sd) #函数StageService_server将服务定义草稿(.sddraft)转换成服务定义;sd为生成的服务定义,默认情况下跟草稿服务定义写入同一目录;过渡完成后,输入的服务定义草稿即被删除
            arcpy.UploadServiceDefinition_server(sd,insever) #根据服务定义文件上传发布GIS服务至特定的服务器
        else: 
            print(analysis['errors'])

    发布成功

     

    connection.ags创建

    # -*- coding: utf-8 -*-
    import arcpy
    import os
    import xml.dom.minidom as DOM
    
    out_folder_path='d:out'
    out_name = 'connection.ags'
    server_url = 'http://192.168.119.233:6080/arcgis/manager/'
    use_arcgis_desktop_staging_folder = False
    staging_folder_path = out_folder_path
    username = 'arcgisadmin'
    password = 'arcgisadmin'
    out_file_path = os.path.join(out_folder_path, out_name)
    if os.path.exists(out_file_path):
        os.remove(out_file_path)
    arcpy.mapping.CreateGISServerConnectionFile('ADMINISTER_GIS_SERVICES', 
                                                out_folder_path,
                                                out_name,
                                                server_url,
                                                'ARCGIS_SERVER',
                                                use_arcgis_desktop_staging_folder,
                                                staging_folder_path,
                                                username,
                                                password,
                                                True)
    print 'over'
  • 相关阅读:
    ASP中使用事务控制
    C语言学习笔记——两个数交换位置的多种方式
    PHP字符串函数
    PHP笔记——文件处理
    算法——穿越沙漠算法
    C学习笔记——使用CL编译器
    Wordpress——一些内部参数记录
    C语言笔记——原码、反码、补码
    C学习笔记——内存
    Linux VI编辑器命令集合
  • 原文地址:https://www.cnblogs.com/yansc/p/13735977.html
Copyright © 2011-2022 走看看