描述
此工具使用在 ArcGIS Enterprise 门户上托管的定位器对托管表格进行地理编码,可创建包含地理编码结果的托管要素图层。
此工具用于自动执行对发布到门户的表格进行地理编码并将输出保存到门户的过程。如果不需要将地理编码结果保存到门户,请使用地理编码表格窗格或地理编码地址工具。
注:
必须在门户网站上具有发布者或管理员权限才能运行此工具。如果您是具有自定义角色的成员,请确保门户管理员已授予您发布托管 web 图层的权限。
使用方法
您可以对储存在单个字段或多个字段中的地址进行地理编码。单个输入字段可存储完整地址,例如,303 Peachtree St NE, Atlanta, GA 30308。如果将常规美国地址的输入地址拆分成 Address、City、State 和 ZIP 等多个字段,则支持多个字段。
某些定位器支持多个输入地址字段,如 Address、Address2 和 Address3。在此情况下,可以将地址组件分为多个字段,然后在进行地理编码时将地址字段连接在一起。例如,跨三个字段的 100、Main St 和 Apt 140,或者跨两个字段的 100 Main St 和 Apt 140,在进行地理编码时,都将成为 100 Main St Apt 140。
使用该工具需要 ArcGIS Enterprise 10.6 或更高版本。
使用 ArcGIS Enterprise 门户上已配置为使用多个线程的定位器将提高地理编码性能。
该工具需要将托管表格或者已在 ArcGIS Enterprise 门户上发布的表格作为输入表。托管表格将视为托管要素图层的一部分,并且必须在门户中创建为项目,才能在工具中使用。有关详细信息,请参阅发布托管要素图层。
输出托管要素图层保存在与地址定位器相同的空间参考中。可通过在工具的环境设置中设置其他输出坐标系来更改输出要素图层的空间参考。
输出托管要素图层将包含所有相关的地理编码信息,例如每个记录的得分、状态和匹配的地址,以及原始输入表中的值。可使用重新匹配地址工具或重新匹配地址选项(将打开重新匹配地址窗格)重新匹配地址。此工具的地理编码结果包含原始输入表的静态快照,因此在原始表中添加或更新任何值都不会更新输出要素服务中的结果。必须重新运行此工具,才能创建包含这些更改的新输出要素服务。
语法
arcpy.geocoding.GeocodeLocationsFromTable(in_table, in_address_locator, address_fields, output_name, {country}, {location_type}, {category}, {output_fields})
参数 | 说明 | 数据类型 |
in_table | 门户中的表格,其中包含要进行地理编码的地址或地点。 | Record Set |
in_address_locator | 将用于对门户的输入表格进行地理编码的门户定位器。 可以从活动门户上的已填充定位器列表中选择一个定位器,或者浏览活动门户以搜索其他可用定位器。默认情况下,已在活动门户中设置为实用程序服务的定位器将可用。如果您要使用的门户定位器未包含在填充列表中,可请求您的门户管理员将此定位器添加为门户实用程序服务,并针对批量地理编码配置此定位器。 注:ArcGIS World Geocoding Service 已针对此工具禁用。如果想要使用 ArcGIS World Geocoding Service,请使用地理编码地址工具。 | Address Locator |
address_fields [input_locator_field, table_field_name] | 此参数中的每个字段映射均采用 input_locator_field, table_field_name 格式,其中 input_locator_field 是定位器指定的输入地址字段名称,table_field_name 是要进行地理编码的地址表中相应字段的名称。 您可以可以指定单个输入字段以存储完整地址,例如,303 Peachtree St NE, Atlanta, GA 30308。如果常规美国地址的输入地址拆分成 Address、City、State 和 ZIP 等多个字段,也可以指定多个字段。 某些定位器支持多个输入地址字段,如 Address、Address2 和 Address3。在此情况下,可以将地址组件分为多个字段,然后在进行地理编码时将地址字段连接在一起。例如,跨三个字段的 100、Main St 和 Apt 140,或者跨两个字段的 100 Main St 和 Apt 140,在进行地理编码时,都将成为 100 Main St Apt 140。 如果不想将定位器所使用的可选输入地址字段映射到输入地址表中的字段,请使用 <None> 来代替字段名,以此指定不存在任何映射。 | Field Info |
output_name | 将在门户上创建的输出地理编码要素图层的名称。 | String |
country [country,...] (可选) | 搜索地理编码地址的一个或多个国家/地区。此参数可用于支持国家/地区参数的定位器,并将地理编码限制在所选国家/地区。选择一个国家/地区将在大多数情况下提高地理编码的准确性。如果将在输入表参数中表示国家/地区的字段映射到 Country 输入地址字段,则输入表参数中的国家/地区值将会覆盖国家/地区参数。 如果未指定国家/地区,则使用定位器的所有受支持国家/地区执行地理编码。将输入值指定为 ISO 3166-1 三位字符的国家/地区代码。 国家/地区参数不适用于所有定位器。 | String |
location_type (可选) | 用于指定 POINT_ADDRESS 匹配的首选输出几何。此参数的选项包括 ROUTING_LOCATION(可用于路由的街道位置侧)和 ADDRESS_LOCATION(表示屋顶、地址宗地质心或前门的位置) 如果数据中不存在首选位置,则会返回 ROUTING_LOCATION 的默认位置。对于 Addr_type=PointAddress 的地理编码结果,x,y 属性值用于描述沿着街道的地址的坐标,而 DisplayX 和 DisplayY 值用于描述屋顶或建筑物质心坐标。有关 reverseGeocode 的 locationType 参数的详细信息,请参阅 REST API Web 帮助。 此参数不受所有定位器支持。
| String |
category [category,...] (可选) | 限制定位器搜索的地点类型,从而消除误报匹配并可能加快搜索过程的速度。如果未使用任何类别,将使用所有支持的类别执行地理编码。并非所有位置和国家/地区都支持所有类别值。通常,类别参数可以用于以下几个方面:
此参数不受所有定位器支持。 有关类别过滤的详细信息,请参阅 REST API Web 帮助。 | String |
output_fields (可选) | 指定将在地理编码结果中返回的定位器输出字段。 注:此参数可与使用创建定位器工具或创建要素定位器工具创建的输入定位器一起使用,这些定位器已发布到 Enterprise 10.9 或更高版本。包含至少一个使用创建地址定位器工具创建的定位器的复合定位器不支持此参数。
| String |
派生输出
名称 | 说明 | 数据类型 |
output_layer | 连接到门户中的输出地理编码结果要素图层的超链接。要素图层的名称派生自输出要素图层名称值。 | 要素集 |
代码示例
以下独立脚本演示了如何使用 GeocodeLocationsFromTable 函数对托管表格图层进行地理编码。
import arcpy
arcpy.SignInToPortal("https://<machine_name>/<portal_web_adaptor_name>",
'<username>', '<password>')
# Input is a hosted table
input_table = "https://<machine_name>/server/rest/services/Hosted/<item_name>/FeatureServer/<table_number>"
# This tool works with locators on your Portal
in_locator = "https://<machine_name>/server/rest/services/<locator_name>/GeocodeServer/<locator_name>"
# The easiest way to generate a field mapping is by running the tool in ArcGIS
# Pro and Right-click the green success ribbon and click "Copy Python command"
field_mapping = "'Street or Intersection' address VISIBLE NONE;'City or Placename' <None> VISIBLE NONE;State <None> VISIBLE NONE;'ZIP Code' zip VISIBLE NONE"
output_name = "geocoding_output"
# Optional geocoding parameters. Only some are supported depending on the
# in_locator that you use.
country = None
location_type = None
category = None
# Note that the output is a hosted feature layer on your portal. To retrieve the
# output, go to your portal and look for a new item with the output_name that
# you entered.
arcpy.geocoding.GeocodeLocationsFromTable(input_table, in_locator,
field_mapping, output_name, country,
location_type, category)
环境
许可信息
- Basic: 需要 ArcGIS Enterprise 中的帐户有执行分析的权限
- Standard: 需要 ArcGIS Enterprise 中的帐户有执行分析的权限
- Advanced: 需要 ArcGIS Enterprise 中的帐户有执行分析的权限