地理编码地址 (地理编码)

摘要

对地址表进行地理编码。 此过程需要一个存储有要进行地理编码的地址的表和一个地址定位器或复合地址定位器。 此工具根据定位器来匹配存储的地址并将每个输入记录的结果保存在新的点要素类中。 使用 ArcGIS World Geocoding Service 时,此操作可能会消耗配额。

使用 ArcGIS World Geocoding Service 执行地理编码操作需要 ArcGIS 组织账户并需要消耗配额。 组织帐户必须具有足够的配额,才能完成整个地理编码请求。

注:

当活动门户为 ArcGIS Online 且输入定位器为 ArcGIS World Geocoding Service 时,工具顶部将提供配额估算。

使用情况

  • 您可以对存储在单个字段中或拆分成多个字段的地址进行地理编码,也可以对存储在单个字段和国家/地区字段的地址编码。 单个输入字段可存储完整地址,例如,303 Peachtree St NE, Atlanta, GA 30308。 如果将常规美国地址的输入地址划分为 AddressCityStateZIP 等多个字段,则系统支持多个字段。 单个输入字段可存储完整地址,例如,303 Peachtree St NE, Atlanta, GA 30308,以及存储与地址关联的国家/地区的字段(例如,USA)

  • 某些定位器支持多个输入地址字段,例如 AddressAddress2Address3。 在此情况下,可以将地址组件分为多个字段,然后在进行地理编码时将地址字段连接在一起。 例如,跨三个字段的 100、Main st 和 Apt 140,或者跨两个字段的 100 Main st 和 Apt 140,在进行地理编码时,都将成为 100 Main st Apt 140。

  • 输出要素类保存在与地址定位器相同的空间参考中。 要更改输出要素类的空间参考,请在工具的环境设置中设置其他输出坐标系。

  • 默认情况下,输出要素类会存储输入地址的副本及其他信息(例如每个记录的得分、状态和匹配的地址)。 可使用重新匹配地址工具或重新匹配地址选项(将打开重新匹配地址窗格)重新匹配地址。 一旦匹配过程结束且创建了要素类,编辑输入地址表中的地址就不会改变输出要素类中的结果。

    了解有关重新匹配地理编码结果的详细信息

  • 要使用 ArcGIS World Geocoding Service 来匹配地址表,则需要 ArcGIS Online for organizations 订阅。

参数

标注说明数据类型
输入表

要对其进行地理编码的地址表。

Table View
输入地址定位器

将用于对地址表进行地理编码的地址定位器。

注:

在定位器路径末尾的定位器名称后包含 .loc 扩展名为可选项。

Address Locator
输入地址字段

地址定位器所使用的地址字段与输入地址表中的字段之间的映射。 如果完整地址储存在输入表的一个字段中,例如 303 Peachtree St NE, Atlanta, GA 30308,请选择单个字段。 如果将常规美国地址的输入划分为 AddressCityStateZIP 等多个字段,请选择多个字段。 如果将完整地址和国家/地区拆分为多个字段,例如 Address (303 Peachtree St NE, Atlanta, GA 30308) 和 Country (USA),则选择单个字段和国家/地区字段

某些定位器支持多个输入地址字段,例如 AddressAddress2Address3。 在此情况下,可以将地址组件分为多个字段,然后在进行地理编码时将地址字段连接在一起。 例如,跨三个字段的 100、Main st 和 Apt 140,或者跨两个字段的 100 Main st 和 Apt 140,在进行地理编码时,都将成为 100 Main st Apt 140。

如果不想将地址定位器所使用的可选输入地址字段映射到输入地址表中的字段,请使用 <None> 来代替字段名,以此指定不存在任何映射。

Field Info
输出要素类

经过地理编码的输出要素类。

注:

由于 shapefile 限制,系统不支持将输出保存为 shapefile 格式。

Feature Class
动态输出要素类
(可选)

参数在 AllSource 中处于非活动状态。 保留它是为了支持 ArcGIS Desktop 向后兼容。

Boolean
国家/地区
(可选)

搜索地理编码地址的一个或多个国家/地区。

此参数可用于支持国家/地区参数的定位器,并将地理编码限制在所选国家/地区。 选择一个国家/地区将在大多数情况下提高地理编码的准确性。 当为输入地址字段参数选择单个字段和国家/地区字段,并在映射表示国家的字段时将输入表参数值用于输入地址字段参数值的 Country 字段,输入表参数值中的国家/地区值将覆盖国家/地区参数。

这仅限于所选的一个或多个国家/地区。 如果未指定国家/地区,则使用定位器的所有受支持国家/地区执行地理编码。

国家/地区参数不适用于所有定位器。

String
首选位置类型
(可选)

用于指定 PointAddress 匹配的首选输出几何。 此参数的选项包括路由位置(可用于路由的街道位置侧)和地址位置(表示地址屋顶或宗地质心的位置)。 如果数据中不存在首选位置,则将返回默认位置。 对于 Addr_type=PointAddress 的地理编码结果,x,y 属性值用于描述沿着街道的地址的坐标,而 DisplayX 和 DisplayY 值用于描述屋顶或建筑物质心坐标。

此参数并非支持所有定位器。

  • 地址位置将返回地理编码结果的几何,该几何可以表示地址位置,例如屋顶位置、宗地质心或前门。
  • 路径位置将返回表示靠近街道一侧(可用于车辆配送)的位置的地理编码结果的几何。 这是默认设置。
String
类别
(可选)

限制定位器搜索的地点类型,从而消除误报匹配并可能加快搜索过程的速度。 如果未使用任何类别,将使用所有支持的类别执行地理编码。 并非所有位置和国家/地区都支持所有类别值。 通常,该参数可以用于以下几个方面:

  • 将匹配限制到特定地点类型或地址级别
  • 避免回退匹配到不需要的地址级别
  • 消除坐标搜索的歧义

此参数并非支持所有定位器。

有关类别过滤的详细信息,请参阅 ArcGIS REST API Web 帮助。

String
输出字段
(可选)

指定将在地理编码结果中返回的定位器输出字段。

  • 全部在地理编码结果中包含所有可用的定位器输出字段。 这是默认设置。
  • 仅位置在地理编码结果中存储 Shape 字段。 输入表参数值中的原始字段名称与其原始字段名称一起保留。
  • 最小化添加以下字段,用于描述位置以及其与地理编码结果中定位器中的信息的匹配程度:ShapeStatusScoreMatch_typeMatch_addrAddr_type。 将保留输入表参数值中的原始字段名称。
  • 最小和用户字段添加以下字段,用于描述位置以及其与定位器中的信息的匹配程度,以及地理编码结果中任何用户定义的自定义输出字段:ShapeStatusScoreMatch_typeMatch_addrAddr_type。 将保留输入表参数值中的原始字段名称。
注:

此参数可与使用创建定位器创建要素定位器工具创建的输入定位器一起使用,这些定位器存储在磁盘上或已发布到 Enterprise 10.9 或更高版本。 包含至少一个使用创建地址定位器工具创建的定位器的复合定位器不支持此参数。

String

arcpy.geocoding.GeocodeAddresses(in_table, address_locator, in_address_fields, out_feature_class, {out_relationship_type}, {country}, {location_type}, {category}, {output_fields})
名称说明数据类型
in_table

要对其进行地理编码的地址表。

Table View
address_locator

将用于对地址表进行地理编码的地址定位器。

注:

在定位器路径末尾的定位器名称后包含 .loc 扩展名为可选项。

Address Locator
in_address_fields
[input_address_field, table_field_name]

此参数中的每个字段映射均采用 input_address_field, table_field_name 格式,其中 input_address_field 是地址定位器指定的输入地址字段名称,table_field_name 是要进行地理编码的地址表中相应字段的名称。

您可以可以指定单个输入字段以存储完整地址,例如,303 Peachtree St NE, Atlanta, GA 30308。 如果常规美国地址的输入地址划分为 AddressCityStateZIP 等多个字段,也可以指定多个字段。 也可以指定单个输入字段可存储完整地址,例如,303 Peachtree St NE, Atlanta, GA 30308,以及存储与地址关联的国家/地区的字段(例如,USA)。

某些定位器支持多个输入地址字段,例如 AddressAddress2Address3。 在此情况下,可以将地址组件分为多个字段,然后在进行地理编码时将地址字段连接在一起。 例如,跨三个字段的 100、Main st 和 Apt 140,或者跨两个字段的 100 Main st 和 Apt 140,在进行地理编码时,都将成为 100 Main st Apt 140。

如果不想将地址定位器所使用的可选输入地址字段映射到输入地址表中的字段,请使用 <None> 来代替字段名,以此指定不存在任何映射。

Field Info
out_feature_class

经过地理编码的输出要素类。

注:

由于 shapefile 限制,系统不支持将输出保存为 shapefile 格式。

Feature Class
out_relationship_type
(可选)
旧版本:

此参数在 AllSource 中不起作用。 保留它是为了支持 ArcGIS Desktop 向后兼容。

AllSource 中,唯一允许的值是 STATIC

  • STATIC输入地址表中字段的静态副本将在输出要素类中创建。 此为唯一允许的值。
  • DYNAMIC此选项在 AllSource 中不适用。 关于此工具的说明,请参阅 ArcGIS Desktop 帮助。
Boolean
country
[country,...]
(可选)

搜索地理编码地址的一个或多个国家/地区。

此参数可用于支持国家/地区参数的定位器,并将地理编码限制在所选国家/地区。 指定一个国家/地区将在大多数情况下提高地理编码的准确性。 如果 in_table 参数中表示国家/地区的字段映射到 input_address_field 参数值中的 Country 字段,则 in_table 参数值中的国家/地区值将覆盖 country 参数。

这仅限于指定的一个或多个国家/地区。 如果未指定国家/地区,则使用定位器的所有受支持国家/地区执行地理编码。

在以逗号分隔的列表中,将值指定为 2 个字符或 3 个字符的国家/地区代码。 有关要使用的输入值,请参阅受支持的国家/地区代码列

country 参数并非支持所有定位器。

String
location_type
(可选)

用于指定 POINT_ADDRESS 匹配的首选输出几何。 此参数的选项包括 ROUTING_LOCATION(可用于路由的街道位置侧)和 ADDRESS_LOCATION(表示屋顶、地址宗地质心或前门的位置) 如果数据中不存在首选位置,则会返回 ROUTING_LOCATION 的默认位置。 对于 Addr_type = PointAddress 的地理编码结果,x,y 属性值用于描述沿着街道的地址的坐标,而 DisplayX 和 DisplayY 值用于描述屋顶或建筑物质心坐标。 有关 geocodeAddresseslocationType 参数的详细信息,请参阅 ArcGIS REST API Web 帮助。

此参数并非支持所有定位器。

  • ADDRESS_LOCATION将返回地理编码结果的几何,该几何可以表示地址位置,例如屋顶位置、宗地质心或前门。
  • ROUTING_LOCATION将返回表示靠近街道一侧(可用于车辆配送)的位置的地理编码结果的几何。 这是默认设置。
String
category
[category,...]
(可选)

限制定位器搜索的地点类型,从而消除误报匹配并可能加快搜索过程的速度。 如果未使用任何类别,将使用所有支持的类别执行地理编码。 并非所有位置和国家/地区都支持所有类别值。 通常,该参数可以用于以下几个方面:

  • 将匹配限制到特定地点类型或地址级别
  • 避免回退匹配到不需要的地址级别
  • 消除坐标搜索的歧义

此参数并非支持所有定位器。

有关类别过滤的详细信息,请参阅 ArcGIS REST API Web 帮助。

String
output_fields
(可选)

指定将在地理编码结果中返回的定位器输出字段。

注:

此参数可与使用创建定位器创建要素定位器工具创建的输入定位器一起使用,这些定位器存储在磁盘上或已发布到 Enterprise 10.9 或更高版本。 包含至少一个使用创建地址定位器工具创建的定位器的复合定位器不支持此参数。

  • ALL在地理编码结果中包含所有可用的定位器输出字段。 这是默认设置。
  • LOCATION_ONLY在地理编码结果中存储 Shape 字段。 in_table 参数值中的原始字段名称与其原始字段名称一起保留。
  • MINIMAL添加以下字段,用于描述位置以及其与地理编码结果中定位器中的信息的匹配程度:ShapeStatusScoreMatch_typeMatch_addrAddr_type。 将保留 in_table 参数值中的原始字段名称。
  • MINIMAL_AND_USER添加以下字段,用于描述位置以及其与地理编码结果中定位器中的信息的匹配程度,以及任何用户定义的自定义输出字段:ShapeStatusScoreMatch_typeMatch_addrAddr_type。 将保留 in_table 参数值中的原始字段名称。
String

代码示例

GeocodeAddresses 示例(独立脚本)

以下脚本演示了如何使用 GeocodeAddresses 函数,以使用本地定位器对地址表进行地理编码。


import arcpy

arcpy.env.workspace = "C:\Geocoding\atlanta"

# Set local variables
table = "customers.dbf"
locator = "Atlanta_AddressLocator.loc"
field_map = ("\'Address or Place\' Address VISIBLE NONE;Address2 <None> VISIBLE NONE;Address3 <None> VISIBLE NONE;" +
                  "Neighborhood <None> VISIBLE NONE;City <None> VISIBLE NONE;County <None> VISIBLE NONE;" +
                  "State <None> VISIBLE NONE;ZIP ZIP <None> VISIBLE NONE;ZIP4 <None> VISIBLE NONE;" +
                  "Country <None> VISIBLE NONE")
geocode_result = "geocode_result.shp"

arcpy.geocoding.GeocodeAddresses(table, locator, 
                                 field_map, geocode_result)
GeocodeAddresses 示例 2(独立脚本)

以下脚本演示了如何使用 GeocodeAddresses 函数,以使用服务器定位器通过 AGS 连接对地址表进行地理编码。


import arcpy

# Set local variables:
table = r"C:\data\Atlanta.gdb\customers"
locator = r"C:\ags_connections\server_name.ags\Atlanta.GeocodeServer"
field_map = "'Single Line Input' SingleLine VISIBLE NONE"
geocode_result = r"C:\outputs\geocode_result.shp"

arcpy.geocoding.GeocodeAddresses(table, locator,
                                 field_map, geocode_result)
GeocodeAddresses 示例 3(独立脚本)

以下脚本演示了如何使用 GeocodeAddresses 函数,以使用门户定位器对地址表进行地理编码。

注:

如果您正在使用您的门户上的定位器,请确保您已登录系统并在 AllSource 中将其设置为您的活动门户。 要访问除活动门户之外的门户上的定位器,请使用 SignInToPortal 函数进行身份验证。


import arcpy

# Set local variables
table = r"C:\data\Atlanta.gdb\customers"
locator = "https://machinename.domain.com/server/rest/services/service_name/GeocodeServer/portal_item_name"
field_map = ("\'Address or Place\' Address VISIBLE NONE;Address2 <None> VISIBLE NONE;Address3 <None> VISIBLE NONE;" +
                  "Neighborhood <None> VISIBLE NONE;City <None> VISIBLE NONE;County <None> VISIBLE NONE;" +
                  "State <None> VISIBLE NONE;ZIP ZIP <None> VISIBLE NONE;ZIP4 <None> VISIBLE NONE;" +
                  "Country <None> VISIBLE NONE")
geocode_result = r"C:\outputs\geocode_result.shp"

arcpy.geocoding.GeocodeAddresses(table, locator, field_map, geocode_result)
GeocodeAddresses 示例 4(独立脚本)

以下脚本演示了如何使用 GeocodeAddresses 函数,以使用 ArcGIS World Geocoding Service 对地址表进行地理编码。

注:

如果您正在使用您的门户上的定位器,请确保您已登录系统并在 AllSource 中将其设置为您的活动门户。 要访问除活动门户之外的门户上的定位器,请使用 SignInToPortal 函数进行身份验证。

注:

使用 ArcGIS World Geocoding Service 时,此操作可能会消耗配额。


import arcpy

# Set local variables
table = r"C:\data\Addresses.csv"

locator = "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service"

field_map = ("\'Address or Place\' Address VISIBLE NONE;Address2 <None> VISIBLE NONE;Address3 <None> VISIBLE NONE;" +
             "Neighborhood <None> VISIBLE NONE;City <None> VISIBLE NONE;Subregion <None> VISIBLE NONE;" +
             "Region <None> VISIBLE NONE;ZIP ZIP <None> VISIBLE NONE;ZIP4 <None> VISIBLE NONE;" +
             "Country <None> VISIBLE NONE")

geocode_result = r"C:\outputs\geocode_result.shp"

arcpy.geocoding.GeocodeAddresses(table, locator, field_map, geocode_result)
GeocodeAddresses 示例 5(独立脚本)

下面的 Python 窗口脚本演示了如何使用 GeocodeAddresses 函数通过 ArcGIS World Geocoding Service 对地址表进行地理编码,其中,所有地址数据均位于单个字段中,国家/地区数据位于第二个字段中。

注:

如果您正在使用您的门户上的定位器,请确保您已登录系统并在 AllSource 中将其设置为您的活动门户。 要访问除活动门户之外的门户上的定位器,请使用 SignInToPortal 函数进行身份验证。

注:

使用 ArcGIS World Geocoding Service 时,此操作可能会消耗配额。


import arcpy

# Set local variables
table = r"C:\Data\MyDatabase.gdb\DistributionCenters"

locator = "https://geocode.arcgis.com/arcgis/rest/services/World/GeocodeServer/ArcGIS World Geocoding Service"

field_map = "'Single Line Input' SingleLine VISIBLE NONE;Country Country VISIBLE NONE"

geocode_result = r"C:\Data\MyDatabase.gdb\DistributionCenters_Geocoded"

arcpy.geocoding.GeocodeAddresses(table, locator, field_map, geocode_result)