ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • 帮助
  • Sign Out
ArcGIS Desktop

ArcGIS Online

专为贵组织打造的制图平台

ArcGIS Desktop

全面的专业性 GIS

ArcGIS Enterprise

面向企业的 GIS

ArcGIS Developers

用于构建位置感知应用程序的工具

ArcGIS Solutions

适用于行业的免费模板地图和应用程序

ArcGIS Marketplace

获取适用于组织的应用程序和数据

  • 文档
  • 支持
Esri
  • 登录
user
  • 我的个人资料
  • 登出

ArcMap

  • 主页
  • 入门
  • 地图
  • 分析
  • 管理数据
  • 工具
  • 扩展模块

CreateGeocodeSDDraft

  • 描述
  • 讨论
  • 语法
  • 代码示例

描述

此函数将地址定位器转换为服务定义草稿 (.sddraft) 文件,该文件可用于创建发布地理编码服务的服务定义。

注:

草稿服务定义不包含数据。草稿服务不能单独用于发布服务。

讨论

CreateGeocodeSDDraft 是使用 ArcPy 将地址定位器自动发布到地理编码服务的第一步。通过 CreateGeocodeSDDraft 创建的输出是服务定义草稿 (.sddraft) 文件。服务定义草稿由地址定位器属性、服务器信息和一组服务属性组合而成。

所有地理编码服务都需要地址定位器。地址定位器是 ArcGIS 中进行地理编码的主要工具,该工具包含了执行地址匹配所需的所有数据。可使用 ArcCatalog、ArcGIS Desktop 中的目录窗口或创建地址定位器地理处理工具来创建地址定位器。有关详细的分步说明,请参阅 ArcGIS 帮助中的创建地址定位器。将多个定位器合为一体的复合定位器也可发布到 ArcGIS Server。有关详细信息,请参阅创建复合地址定位器。

服务器信息包括服务器连接、发布到的服务器的类型、服务的元数据(项目信息)和数据参考(是否将数据复制到服务器)。

服务属性包括服务支持的地理编码和反向地理编码等操作、对单个地址进行地理编码时服务返回的最大候选项数量,或者执行地理编码批处理时每个批处理作业中处理的最大记录数。

注:

服务的池化属性(例如每台计算机的最大或最小实例数)不会作为函数的参数显示。如果需要修改值(或其他任何未显示的参数),您需要先发布 .sddraft,然后通过使用 XML 库(例如 xml.dom.minidom)编辑此 .sddraft 来修改此草稿。有关库的用法,请参阅 SDDRAFT 修改示例。尽管示例来自地图服务草稿,但可以对地理编码服务草稿使用同一个库和方法,因为它是一个 XML 文件。

此函数会返回字典,其中包含应在创建服务定义文件之前解决的错误和其他潜在问题。

可在特定服务器连接信息未知的情况下编写服务定义草稿文件。在这种情况下,可以忽略 connection_file_path 参数;但是必须提供 server_type。可在使用上载服务定义工具发布服务定义草稿文件后提供服务器连接。

随后可使用过渡服务工具将服务定义草稿文件转换为完全合并的服务定义 (.sd) 文件。过渡过程会编译成功发布 GIS 资源所需的所有必要信息。如果未将数据注册到服务器,将在过渡服务定义草稿文件时添加这些数据。最后,可以使用上载服务定义工具上载服务定义文件并将其作为 GIS 服务发布到指定的 GIS 服务器。此步骤将获取服务定义文件、将其复制到服务器、提取所需信息并发布 GIS 资源。有关详细信息,请参阅发布工具集概述。

语法

CreateGeocodeSDDraft (loc_path, out_sddraft, service_name, {server_type}, {connection_file_path}, {copy_data_to_server}, {folder_name}, {summary}, {tags}, {max_result_size}, {max_batch_size}, {suggested_batch_size}, {supported_operations})
参数说明数据类型
loc_path

表示地址定位器目录路径的字符串。可发布的有效地址定位器格式为文件夹中的定位器文件 (.loc) 或地理数据库中的定位器。

String
out_sddraft

用于表示输出服务定义草稿 (.sddraft) 文件的路径和文件名的字符串。

String
service_name

用于表示服务名称的字符串。该名称用于向用户显示并识别服务。名称只能包含字母数字字符和下划线。不允许使用空格或特殊字符。名称长度不能超过 120 个字符。

String
server_type

表示服务器类型的字符串。如果未提供 connection_file_path 参数,则必须提供 server_type。如果提供了 connection_file_path 参数,则可从连接文件获取 server_type。在这种情况下,您可以选择 FROM_CONNECTION_FILE 或完全跳过该参数。

  • ARCGIS_SERVER —ArcGIS Server 服务器类型。
  • FROM_CONNECTION_FILE —获取 connection_file_path 参数中所指定的 server_type。

(默认值为 ARCGIS_SERVER)

String
connection_file_path

用于表示 ArcGIS Server 连接文件 (.ags) 的路径和文件名的字符串。

可使用 CreateGISServerConnectionFile 函数创建新的连接文件。

String
copy_data_to_server

指示地址定位器中所引用的数据是否复制到服务器的布尔值。copy_data_to_server 参数仅在 server_type 为 ARCGIS_SERVER 且 connection_file_path 未指定的情况下使用。如果 connection_file_path 已指定,则会使用服务器的已注册数据存储。例如,如果地址定位器中的数据已注册到服务器,则 copy_data_to_server 将始终为 False。相反,如果地址定位器中的数据未注册到服务器,则 copy_data_to_server 将始终为 True。

(默认值为 False)

Boolean
folder_name

用于表示您要向其中发布服务定义的文件夹名称的字符串。如果文件夹当前不存在,则将在服务定义发布为服务时创建文件夹。默认的文件夹为服务器根级别。

(默认值为 None)

String
summary

用于表示项目描述摘要的字符串。

使用此参数可以覆盖用户界面摘要,如果摘要不存在,则将提供摘要。

(默认值为 None)

String
tags

用于表示项目描述标签的字符串。

使用此参数可以覆盖用户界面标签,如果标签不存在,则将提供标签。要指定多个标签,请在字符串中以逗号分隔各标签。

(默认值为 None)

String
max_result_size

地理编码单个地址时服务返回的最大候选项数。

(默认值为 500)

Integer
max_batch_size

执行批量地理编码时每次批处理作业要处理的最大记录数。

(默认值为 1000)

Integer
suggested_batch_size

执行批量地理编码时每次批处理作业要处理的记录的建议数量。

(默认值为 1000)

Integer
supported_operations
[supported_operations,...]

服务所支持的内置操作。应将参数指定为包含一个或多个下列字符串关键字的列表:

  • GEOCODE - 服务允许地理编码操作。
  • REVERSE_GEOCODE - 服务允许反向地理编码操作。
  • SUGGEST - 服务允许建议操作。

例如,要将服务指定为仅支持地理编码操作而不允许任何其他反向地理编码操作,则需将参数指定为 ["GEOCODE"]。

(默认值为 [GEOCODE, REVERSE_GEOCODE, SUGGEST])

List

返回值

数据类型说明
Dictionary

返回由信息性消息、警告和错误组成的字典。

代码示例

发布地理编码服务

下列脚本演示将地址定位器发布为地理编码服务的完整工作流。发布工作流中的第一步是使用 CreateGeocodeSDDraft 函数基于地址定位器创建服务定义草稿文件 (.sddraft)。然后,使用 StageService 函数基于服务定义草稿文件创建服务定义文件 (.sd)。最后,使用 UploadServiceDefinition 函数将服务定义文件作为服务发布到 GIS 服务器。

import arcpy
import pprint

#Overwrite any existing outputs
arcpy.env.overwriteOutput = True

locator_path = "C:\\Data\\Locators\Atlanta"
sddraft_file = "C:\\Output\\Atlanta.sddraft"
sd_file = "C:\\Output\\Atlanta.sd"
service_name = "Atlanta"
summary = "Address locator for the city of Atlanta"
tags = "address, locator, geocode"
gis_server_connection_file = "C:\\Data\\server_connection.ags"

#Create the sd draft file
analyze_messages  = arcpy.CreateGeocodeSDDraft(locator_path, sddraft_file, service_name,
                           connection_file_path=gis_server_connection_file,
                           summary=summary, tags=tags, max_result_size=20,
                           max_batch_size=500, suggested_batch_size=150)

#stage and upload the service if the sddraft analysis did not contain errors
if analyze_messages['errors'] == {}:
    try:
        # Execute StageService to convert sddraft file to a service definition (sd) file 
        arcpy.server.StageService(sddraft_file, sd_file)
        # Execute UploadServiceDefinition to publish the service definition file as a service
        arcpy.server.UploadServiceDefinition(sd_file, gis_server_connection_file)
        print "The geocode service was successfully published"
    except arcpy.ExecuteError as ex:
        print "An error occured"
        print arcpy.GetMessages(2)
else: 
    # if the sddraft analysis contained errors, display them
    print "Error were returned when creating service definition draft"
    pprint.pprint(analyze_messages['errors'], indent=2)

ArcGIS Desktop

  • 主页
  • 文档
  • 支持

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

关于 Esri

  • 关于我们
  • 招贤纳士
  • Esri 博客
  • 用户大会
  • 开发者峰会
Esri
分享您的想法。
Copyright © 2021 Esri. | 隐私政策 | 法律声明