描述
对地址表进行地理编码。此过程需要一个存储有要进行地理编码的地址的表和一个地址定位器或复合地址定位器。此工具根据地址定位器来匹配地址并将每个输入记录的结果保存在新的点要素类中。使用 ArcGIS World Geocoding Service 时,此操作可能会消耗配额。
插图
使用方法
您可以对储存在单个字段中或拆分成多个字段的地址进行地理编码。单个输入字段存储完整地址,例如,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。
默认情况下,输出要素类会存储输入地址的副本及其他信息(例如每个记录的得分、状态和匹配的地址)。可使用 ArcMap 中的重新匹配地址工具或交互重新匹配对话框来重新匹配地址。一旦匹配过程结束且创建了要素类,编辑输入地址表中的地址就不会改变输出要素类中的结果。
如果想在更新输入地址表时自动更新输出要素类中的匹配结果,请将动态输出要素类参数设置为 true(选中)。系统会为输入表和输出要素类创建关系类。如果在 ArcMap 的编辑会话中更改了输入表中的某个地址,将会立即对该地址重新进行地理编码,并用新的地理编码结果更新输出要素类中的相关记录。此外,还支持在输入表中添加新记录或删除现有记录后自动进行更新。
要使用 ArcGIS World Geocoding Service 来匹配地址表,则需要 ArcGIS Online for organizations 订阅。有关详细信息,请参阅使用 ArcGIS Online World Geocoding Service。
语法
arcpy.geocoding.GeocodeAddresses(in_table, address_locator, in_address_fields, out_feature_class, {out_relationship_type}, {country}, {location_type})
参数 | 说明 | 数据类型 |
in_table | 要进行地理编码的地址表。 | Table View |
address_locator | 要用于对地址表进行地理编码的地址定位器。 | 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。如果常规美国地址的输入地址拆分成 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 |
out_feature_class | 经过地理编码的输出要素类或 shapefile。 | Feature Class |
out_relationship_type (可选) | 指示是在地理编码要素类的内部创建地址表的静态副本,还是创建动态更新的地理编码要素类。
| Boolean |
country [country,...] (可选) | 地理编码将限于所选国家/地区。在没有使用国家/地区的情况下,将对所有支持的国家/地区进行地理编码。选择一个国家/地区将在大多数情况下提高地理编码的准确性。 如果将输入表中表示国家/地区的字段映射到 CountryCode 输入地址字段,则输入表中的国家/地区值将会覆盖国家/地区参数。输入值应指定为 ISO 3166-1 三位字符的国家/地区代码。 此参数不受所有定位器支持。 | String |
location_type (可选) | 用于指定 PointAddress 匹配的首选输出几何。选项是街道侧位置,可用于路径或者地址的屋顶或宗地质心。如果数据中不存在首选位置,则将返回默认位置。对于 Addr_type=PointAddress 的地理编码结果,X,Y 属性值用于描述沿着街道的地址的坐标,而 DisplayX 和 DisplayY 值用于描述屋顶或建筑物质心坐标。有关 geocodeAddresses 的 locationType 参数的更多详细信息,请参阅 REST API Web 帮助。 此参数不受所有定位器支持。
| String |
代码示例
GeocodeAddresses 示例(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下,通过多线程地理编码使用 GeocodeAddress 函数。
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Geocoding/Atlanta.gdb"
# Set local variables:
address_table = "customers"
address_locator = "C:/ArcTutor/Geocoding/Atlanta"
address_fields = "Street Address;City City;State State;ZIP Zip"
geocode_result = "geocode_result"
arcpy.GeocodeAddresses_geocoding(address_table, address_locator, address_fields,
geocode_result, 'STATIC')
GeocodeAddresses 示例(Python 窗口)
以下 Python 窗口脚本演示了如何在即时模式下,通过单线程地理编码使用 GeocodeAddress 函数。
import arcpy
arcpy.env.workspace = "C:/ArcTutor/Geocoding/Atlanta.gdb"
# Set local variables:
address_table = "customers"
address_locator = "C:/ArcTutor/Geocoding/Atlanta"
address_fields = "'Single Line Input' SINGLELINE"
geocode_result = "singleline_geocode_result"
arcpy.GeocodeAddresses_geocoding(address_table, address_locator, address_fields,
geocode_result, 'STATIC')
环境
许可信息
- Basic: 受限
- Standard: 是
- Advanced: 是