Crear localizador (Geocodificación)

Resumen

Crea un localizador que puede encontrar la ubicación de una dirección o un lugar, convertir una tabla de direcciones o lugares en una colección de entidades de puntos o identificar la dirección de una ubicación de puntos.

Nota:

Los localizadores creados con esta herramienta se pueden utilizar en ArcGIS Pro 2.2 o versiones posteriores, Enterprise 10.6.1 o versiones posteriores y como un servicio de localizador en ArcMap. Es posible que no se admitan todas las funciones de localizador antes de Enterprise 10.7. Se aplicará según se agregue como función adicional a versiones más recientes del software. Los localizadores creados con esta herramienta no se pueden utilizar como un localizador local en ArcMap.

Uso

  • El rol del localizador define el tipo de datos que se utilizan (parcela, línea de centro de calle, postal, punto de interés, etc.) y proporciona los campos apropiados para crear el localizador y la información devuelta en los resultados de la geocodificación. Los roles del localizador principal proporcionados con ArcGIS Pro permiten crear los siguientes tipos comunes de localizadores:

    • PointAddress: dirección de una calle basada en puntos que representan ubicaciones de casas y edificios. Incluye Subdirección, que se basa en puntos que representan ubicaciones de subdirecciones de casas y edificios, como suites, pisos o apartamentos.
    • Parcela: una dirección o nombre de parcela basados en puntos o polígonos que representan una parcela de tierra que se considera un bien inmueble y puede incluir una o varias viviendas u otras estructuras que suelen tener una dirección y número de identificación de parcela asignados a ella, como 17 011100120063.
    • StreetAddress: dirección de una calle basada en calles donde el número de la casa se interpola a partir de un rango de números. Incluye las intersecciones, el nombre de la calle y la extensión de la calle.
    • Punto de interés: consta de divisiones administrativas, nombres de lugares, negocios, hitos y entidades geográficas, por ejemplo, Starbucks.
    • DistanceMarker: una dirección de calle que representa la distancia lineal a lo largo de una calle, normalmente en kilómetros o millas, desde una ubicación de origen designada.
    • DistanceRange: un tipo de marcador de distancia que representa valores de distancia interpolados a lo largo de la línea de centro de calle en función de las entidades de línea.
    • Postal: códigos postales, códigos postales con extensiones y localidades postales donde se deben usar datos de referencia de polígonos para obtener resultados de geocodificación inversa óptimos.
    • Localities: zonas o áreas administrativas como ciudades, vecindarios, estados, etc., donde se deben usar datos de referencia de polígonos para obtener resultados de geocodificación inversa óptimos.

  • La herramienta Crear localizador se puede utilizar para crear un localizador multirrol. El localizador multirrol permite combinar varios roles y capas de datos de referencia en un solo localizador para buscar varios tipos de ubicaciones a la vez.

    Más información sobre la combinación de varios roles en un solo localizador

  • Las tablas y clases de entidad representadas como servicios son tipos de datos compatibles para usarlos como datos de referencia primarios y tablas de nombre alternativo.

  • Las tablas de nombres alternativos se pueden usar para todas los roles de localizador admitidos y se admiten nombres alternativos para las entidades de los datos de referencia primarios.

    Más información sobre las tablas de nombres alternativos

  • La salida de esta herramienta se puede usar como entrada de la herramienta Crear localizador de direcciones compuesto.

Sintaxis

arcpy.geocoding.CreateLocator(country_code, primary_reference_data, field_mapping, out_locator, language_code, {alternatename_tables}, {alternate_field_mapping}, {custom_output_fields}, {precision_type})
ParámetroExplicaciónTipo de datos
country_code

Especifica dónde se aplicará la lógica de geocodificación específica del país a los datos de referencia para el localizador.

Se puede especificar mediante AS_DEFINED_IN_DATA y se puede asignar un valor desde primary_reference_data en field_mapping o se puede aplicar a todo el dataset especificando el nombre del código de país de tres caracteres, como USA, CAN o PRI.

Proporciona una plantilla de país que contiene los nombres de campo previstos que estén disponibles mediante el parámetro field_mapping para el país especificado del localizador que se va a crear.

  • AS_DEFINED_IN_DATAValor de código de país de tres caracteres definido en los datos de referencia de cada entidad
  • ASMSamoa Americana
  • AUSAustralia
  • AUTAustria
  • BELBélgica
  • CANCanadá
  • CHE Suiza
  • DEUAlemania
  • ESPEspaña
  • FRAFrancia
  • GBRGran Bretaña
  • GUMGuam
  • MNPIslas Marianas del Norte
  • NLDPaíses Bajos
  • PRIPuerto Rico
  • VIRGobierno Federal Islas Vírgenes
  • USAEstados Unidos
  • UMI Islas Ultramarinas Menores de los Estados Unidos
String
primary_reference_data
[[reference_data, {role}],...]

Las clases de entidad de datos de referencia y sus roles, que se utilizan para crear el localizador. Solo se puede utilizar una tabla principal por rol.

Las clases de entidad representadas como servicios son tipos de datos compatibles para usarlos como datos de referencia primarios.

Precaución:

Cuando se define una consulta de definición para los datos de referencia principales o existen entidades seleccionadas, solo se incluyen las entidades consultadas y seleccionadas al crear el localizador.

Nota:

Al crear un localizador con datos de referencia que contienen millones de entidades, debe disponer al menos de 3 a 4 veces el tamaño de los datos en espacio libre en disco en la unidad que contiene el directorio temporal, ya que los archivos utilizados para construir el localizador se escriben en esta ubicación antes de que el localizador se copie en la ubicación de salida. Si no se dispone de suficiente espacio en disco, la herramienta fallará cuando se quede sin espacio. Además, al crear localizadores grandes, su equipo debe tener RAM suficiente para manejar grandes procesos que requieren mucha memoria.

Value Table
field_mapping
[field_mapping,...]

La asignación de los campos del dataset de referencia primario a los campos admitidos por el rol del localizador. Cada asignación de campos de este parámetro está en el siguiente formato, donde <role name> es el nombre del localizador, <locator role field name> es el nombre del campo que admite el nombre del localizador, <primary data> es el nombre de los datos que se utilizan en el parámetro primary_reference_data y <primary data field name> es el nombre del campo del dataset de referencia primario.

Lo que sigue es un ejemplo de field_mapping primario.

# <role name>.<locator role field name> <primary data>.<primary data field name>
# This shows an example:
primary_reference_data_field_map =
"'StreetAddress.HOUSE_NUMBER_FROM_LEFT streets.L_F_ADD';"\
"'StreetAddress.HOUSE_NUMBER_TO_LEFT streets.L_T_ADD';"\
"'StreetAddress.HOUSE_NUMBER_FROM_RIGHT streets.R_F_ADD';"\
"'StreetAddress.HOUSE_NUMBER_TO_RIGHT streets.R_T_ADD';"\
"'StreetAddress.STREET_PREFIX_DIR streets.PREFIX';"\
"'StreetAddress.STREET_PREFIX_TYPE streets.PRE_TYPE';"\
"'StreetAddress.STREET_NAME streets.NAME';"\
"'StreetAddress.STREET_SUFFIX_TYPE streets.TYPE';"\
"'StreetAddress.STREET_SUFFIX_DIR streets.SUFFIX';"\
"'StreetAddress.CITY_LEFT streets.CITYL';"\
"'StreetAddress.CITY_RIGHT streets.CITYR';"\
"'StreetAddress.REGION_LEFT streets.STATE_ABBR';"\
"'StreetAddress.REGION_RIGHT streets.STATE_ABBR';"\
"'StreetAddress.POSTAL_LEFT streets.ZIPL';"\
"'StreetAddress.POSTAL_RIGHT streets.ZIPR'"

Asigne los campos relevantes para cada tabla en el parámetro primary_reference_data. Si decide no asignar un campo de datos de referencia opcional que utiliza el rol del localizador a un campo de un dataset de referencia, no es necesario especificar que no hay ninguna asignación usando <None> en lugar de un nombre de campo.

Para determinar el <locator role field name> para el campo de datos de referencia utilizado por el rol del localizador, abra la herramienta Crear localizador en ArcGIS Pro y elija el rol del localizador. El nombre que aparece en la columna Nombre de campo del parámetro Asignación de campos es el nombre de campo del rol del campo.

Nota:

Si utiliza una tabla de nombres alternativos, asigne un Id. de unión en primary_reference_data.

Para agregar campos de salida personalizados, los nombres de los campos se deben definir tanto en el parámetro custom_output_fields como en el parámetro field_mapping. El parámetro field_mapping usa el formato '<locator role field name> <primary data field name>', donde <locator role field name> se define como 'RoleName.CustomFieldName' y <primary data field name> es el nombre del campo del dataset de referencia primario como se muestra en los campos asignados del ejemplo anterior. Si se agrega un campo personalizado a un rol de Dirección de calle, es necesario asignar 'StreetAddress.CustomFieldName_Left' y 'StreetAddress.CustomFieldName_Right' para cada lado de la calle.

String
out_locator

El archivo del localizador de direcciones de salida.

Address Locator
language_code

Especifica dónde se aplicará la lógica de geocodificación específica del idioma a los datos de referencia para el localizador.

Si existe un campo de código de idioma en los datos de referencia primarios, proporcionar un código de idioma puede mejorar los resultados de la geocodificación.

Se puede especificar configurando AS_DEFINED_IN_DATA como language_code y asignando un valor de primary_reference_data en field_mapping o puede aplicarse a todo el dataset especificando un idioma mediante el código de idioma de tres caracteres que representa el idioma de la dirección, como ENG.

  • AS_DEFINED_IN_DATAValor de código de idioma de tres caracteres definido en los datos de referencia de cada entidad
  • BAQVasco
  • CATCatalán
  • DUT Neerlandés
  • ENGEnglish (inglés)
  • FREFrancés
  • GERDeutsch
  • GLGGallego
  • ITA Italiano
  • SPAEspañol
String
alternatename_tables
[alternatename_tables,...]
(Opcional)

Las tablas que contienen los nombres alternativos para las entidades en las tablas de roles principales.

Las tablas representadas como servicios son tipos de datos compatibles para usarlos como tablas de nombre alternativo.

Precaución:

Cuando se define una consulta de definición para la tabla de nombre alternativo o existen registros seleccionados, solo se incluyen los registros consultados y seleccionados al crear el localizador.

Value Table
alternate_field_mapping
[alternate_field_mapping,...]
(Opcional)

Asigna campos de la tabla de nombres alternativos a los campos de datos alternativos admitidos por el rol del localizador. Cada asignación de campos debe utilizar el siguiente formato, donde <alternate name table role> es el nombre del rol de la tabla de nombres alternativos, <locator role alternate field name> es el nombre de los campos de datos alternativos que admite el rol de localizador de la tabla de nombres alternativos, <alternate data table> es el nombre de la tabla de nombres alternativos y <alternate data table field name> es el nombre del campo en la tabla de nombres alternativos. Asigne los campos relevantes para cada tabla en alternatename_tables.

El siguiente es un ejemplo de alternate_field_mapping para alternatename_tables.

# <alternate name table role>.<locator role alternate field name> <alternate data table>.<alternate data table field name>
# This shows an example:
alternate_data__table_field_map =
"'AlternateStreetName.STREET_NAME_JOIN_ID altname.JOINID';"\
"'AlternateStreetName.STREET_PREFIX_DIR altname.PRE_DIR';"\
"'AlternateStreetName.STREET_PREFIX_TYPE altname.PRE_TYPE';"\
"'AlternateStreetName.STREET_NAME altname.ST_NAME';"\
"'AlternateStreetName.STREET_SUFFIX_TYPE altname.ST_TYPE';"\
"'AlternateStreetName.STREET_SUFFIX_DIR altname.SUF_DIR'"
Nota:

Si los datos están normalizados y la tabla principal no contiene valores de nombre de ciudad, pero sí la tabla de nombres alternativos, el campo Primary Name Indicator se puede asignar a un campo de la tabla de nombres alternativos que contenga un valor que indique si el registro es el campo principal (por ejemplo, verdadero/falso o Sí/No). Si este campo no está asignado, el primer registro de la tabla de nombres alternativos se utiliza como el valor principal.

String
custom_output_fields
[custom_output_fields,...]
(Opcional)

Agrega campos de salida al resultado de geocodificación. Los valores especificados para este parámetro definen los nombres de los campos de salida que devuelve el resultado de geocodificación; sin embargo, cada nuevo campo debe asignarse a un campo en los datos de referencia. Este nuevo campo de salida se aplica a todos los roles usados en el localizador. Si el rol del localizador tiene lado izquierdo y derecho, se incorporan _left y _right al final del nombre del campo.

Nota:

Primero se deben incluir los nombres de los campos de salida personalizados en el parámetro field_mapping y, a continuación, se deben enumerar los nombres en el parámetro custom_output_fields.

String
precision_type
(Opcional)

Especifica la precisión del localizador.

Nota:

Los localizadores creados con precisión GLOBAL_EXTRA_HIGH o LOCAL_EXTRA_HIGH pueden utilizarse en ArcGIS Pro 2.6 o posterior o Enterprise 10.8.1 o posterior.

  • GLOBAL_EXTRA_HIGHAproximadamente 1 cm de precisión en todo el mundo.
  • GLOBAL_HIGH Aproximadamente 0,5 m de precisión en todo el mundo. Esta es la opción predeterminada.
  • LOCAL_EXTRA_HIGHMayor precisión para áreas locales.
String

Muestra de código

Ejemplo 1 de CreateLocator (script independiente)

El siguiente script de Python muestra cómo utilizar la función CreateLocator en un script independiente.

# Description: Create a POI locator using a feature class in a file geodatabase 
#              that contains points of interest for Arts & Entertainment 
#              locations as reference data, where country_code and language_code 
#              are defined in the data. The new locator will be created in a 
#              file folder.
# Import system modules
import arcpy
# Set workspace
arcpy.env.workspace = "C:/Data/RhodeIsland"
# Set local variables:
primary_reference_data = "RI_Arts_POI POI"
field_mapping = "'POI.PLACE_NAME RI_Arts_POI.PLACE_NAME';"\
               "'POI.CATEGORY RI_Arts_POI.CATEGORY';"\
               "'POI.SUBCATEGORY RI_Arts_POI.SUBCATEGORY';"\
               "'POI.HOUSE_NUMBER RI_Arts_POI.HOUSE_NUMB';"\
               "'POI.STREET_NAME RI_Arts_POI.STREET_NAME';"\
               "'POI.NEIGHBORHOOD RI_Arts_POI.NEIGHBORHOOD';"\
               "'POI.CITY RI_Arts_POI.CITY_NAME';"\
               "'POI.SUBREGION RI_Arts_POI.SUBREGION';"\
               "'POI.REGION RI_Arts_POI.REGION_NAME';"\
               "'POI.POSTAL RI_Arts_POI.POSTAL_CODE';"\
               "'POI.COUNTRY_CODE RI_Arts_POI.COUNTRY_CODE';"\
               "'POI.LANG_CODE RI_Arts_POI.LANGUAGE_CODE';"\
               "'POI.RANK RI_Arts_POI.RANK'"
out_locator = "Arts_Entertainment_POIs"
# Execute CreateLocator
arcpy.geocoding.CreateLocator("AS_DEFINED_IN_DATA", primary_reference_data, field_mapping, 
                              out_locator, "AS_DEFINED_IN_DATA")
Ejemplo 2 de CreateLocator (ventana de Python)

El siguiente script de Python demuestra cómo utilizar la función CreateLocator en el modo inmediato.

# Description: Create a StreetAddress locator using a street centerline feature 
#              class in a file geodatabase as reference data, where multiple 
#              custom_output_fields are added to the locator for use in the 
#              geocode result. country_code and language_code are specified and 
#              will be applied to the entire reference dataset. The new locator 
#              will be created in a file folder.
# Import system modules
import arcpy
# Set workspace
arcpy.env.workspace = "C:/Data/Denver"
# Set local variables
country_code = "USA"
primary_reference_data = "Street_Centerline StreetAddress"
field_mapping = "'StreetAddress.HOUSE_NUMBER_FROM_LEFT Street_Centerline.L_F_ADD';"\
                "'StreetAddress.HOUSE_NUMBER_TO_LEFT Street_Centerline.L_T_ADD';"\
                "'StreetAddress.HOUSE_NUMBER_FROM_RIGHT Street_Centerline.R_F_ADD';"\
                "'StreetAddress.HOUSE_NUMBER_TO_RIGHT Street_Centerline.R_T_ADD';"\
                "'StreetAddress.STREET_PREFIX_DIR Street_Centerline.PREFIX';"\
                "'StreetAddress.STREET_PREFIX_TYPE Street_Centerline.TYPE';"\
                "'StreetAddress.STREET_NAME Street_Centerline.NAME';"\
                "'StreetAddress.STREET_SUFFIX_TYPE Street_Centerline.TYPE';"\
                "'StreetAddress.STREET_SUFFIX_DIR Street_Centerline.SUFFIX';"\
                "'StreetAddress.POSTAL_LEFT Street_Centerline.ZIPLEFT';"\
                "'StreetAddress.POSTAL_RIGHT Street_Centerline.ZIPRIGHT';"\
                "'StreetAddress.CustomField1_left Street_Centerline.LEFTFIRE';"\
                "'StreetAddress.CustomField1_right Street_Centerline.RTFIRE';"\
                "'StreetAddress.CustomField2_left Street_Centerline.LEFTEMS';"\
                "'StreetAddress.CustomField2_right Street_Centerline.RTEMS'"
out_locator = "DenverStreetsCustomFieldsLocator"
language_code = "ENG"
# Execute CreateLocator
arcpy.geocoding.CreateLocator(country_code, primary_reference_data, field_mapping, 
                              language_code, None, None, "CustomField1;CustomField2")
Ejemplo 3 de CreateLocator (ventana de Python)

El siguiente script de Python demuestra cómo utilizar la función CreateLocator en el modo inmediato.

# Create a StreetAddress locator using a street centerline feature class and an alternate
# name table, for alternate street names, in a file geodatabase as reference data. # The new locator will be created in a file folder.
# Import system modules import arcpy
# Set workspace arcpy.env.workspace = "C:/ArcTutor/Geocoding/Atlanta"
# Set local variables primary_reference_data = "streets StreetAddress"
field_mapping = "'StreetAddress.STREET_NAME_JOIN_ID streets.STREETID';"\                "'StreetAddress.HOUSE_NUMBER_FROM_LEFT streets.L_F_ADD';"\                "'StreetAddress.HOUSE_NUMBER_TO_LEFT streets.L_T_ADD';"\                "'StreetAddress.HOUSE_NUMBER_FROM_RIGHT streets.R_F_ADD';"\                "'StreetAddress.HOUSE_NUMBER_TO_RIGHT streets.R_T_ADD';"\                "'StreetAddress.STREET_PREFIX_DIR streets.PREFIX';"\                "'StreetAddress.STREET_PREFIX_TYPE streets.PRE_TYPE';"\                "'StreetAddress.STREET_NAME streets.NAME';"\                "'StreetAddress.STREET_SUFFIX_TYPE streets.TYPE';"\                "'StreetAddress.STREET_SUFFIX_DIR streets.SUFFIX';"\                "'StreetAddress.CITY_LEFT streets.CITYL';"\                "'StreetAddress.CITY_RIGHT streets.CITYR';"\                "'StreetAddress.REGION_LEFT streets.STATE_ABBR';"\                "'StreetAddress.REGION_RIGHT streets.STATE_ABBR';"\                "'StreetAddress.POSTAL_LEFT streets.ZIPL';"\                "'StreetAddress.POSTAL_RIGHT streets.ZIPR'"
alternatename_tables = "altname AlternateStreetName"
alternate_field_mapping = "'AlternateStreetName.STREET_NAME_JOIN_ID altname.STREETID';"\                          "'AlternateStreetName.STREET_PREFIX_DIR altname.PRE_DIR';"\                          "'AlternateStreetName.STREET_PREFIX_TYPE altname.PRE_TYPE';"\                          "'AlternateStreetName.STREET_NAME altname.ST_NAME';"\                          "'AlternateStreetName.STREET_SUFFIX_TYPE altname.ST_TYPE';"\                          "'AlternateStreetName.STREET_SUFFIX_DIR altname.SUF_DIR';"\                          "'AlternateStreetName.PRIMARY_NAME_INDICATOR altname.PRIMARY'"
out_locator = "AtlantaAlternateStreetsLocator"
# Execute CreateLocator arcpy.geocoding.CreateLocator("USA", primary_reference_data, field_mapping,                               out_locator, "ENG", alternatename_tables, 
                              alternate_field_mapping)
Ejemplo 4 de CreateLocator (script independiente)

El siguiente script de Python demuestra cómo utilizar la función CreateLocator en el modo inmediato.

# Description: Create a multi-role locator (PointAddress & StreetAddress) using a hosted
# feature service from ArcGIS Online as reference data. # country_code and language_code
# are specified and will be applied to the entire reference dataset. # The new locator will be created in a file folder.
# Import system modules import arcpy
# Sign in to ArcGIS Online to use feature services as input arcpy.SignInToPortal("https://www.arcgis.com", "<username>", "<password>")
# Set local variables country = "USA"
in_table = "https://services.arcgis.com/<layer_id>/arcgis/rest/services/<service_name>/FeatureServer/<layer_number> PointAddress;"\           "https://services.arcgis.com/<layer_id>/arcgis/rest/services/<service_name>/FeatureServer/<layer_number> StreetAddress"
field_mapping = "'PointAddress.ADDRESS_JOIN_ID 0.PT_ADDR_ID';"\                "'PointAddress.HOUSE_NUMBER 0.ADDRESS';"\                "'PointAddress.STREET_NAME 0.ST_NAME';"\                "'PointAddress.SIDE 0.SIDE';"\                "'PointAddress.CITY 0.CITY';"\                "'PointAddress.REGION 0.STATE';"\                "'StreetAddress.HOUSE_NUMBER_FROM_LEFT 1.L_F_ADD_INT';"\                "'StreetAddress.HOUSE_NUMBER_TO_LEFT 1.L_T_ADD_INT';"\                "'StreetAddress.HOUSE_NUMBER_FROM_RIGHT 1.R_F_ADD_INT';"\                "'StreetAddress.HOUSE_NUMBER_TO_RIGHT 1.R_T_ADD_INT';"\                "'StreetAddress.STREET_PREFIX_DIR 1.PREFIX';"\                "'StreetAddress.STREET_PREFIX_TYPE 1.PRETYPE';"\                "'StreetAddress.STREET_NAME 1.NAME';"\                "'StreetAddress.STREET_SUFFIX_TYPE 1.TYPE';"\                "'StreetAddress.STREET_SUFFIX_DIR 1.SUFFIX';"\                "'StreetAddress.CITY_LEFT 1.PLACENAME_L';"\                "'StreetAddress.CITY_RIGHT 1.PLACENAME_R';"\                "'StreetAddress.REGION_LEFT 1.STATE';"\                "'StreetAddress.REGION_ABBR_LEFT 1.STATE_L';"\                "'StreetAddress.REGION_RIGHT 1.STATE';"\                "'StreetAddress.REGION_ABBR_RIGHT 1.STATE_R'"
out_locator = r"C:\output\locators\MultiroleFeatureServiceBasedLocator"
language = "ENG"
# Execute CreateLocator arcpy.geocoding.CreateLocator(country, in_table, field_mapping, out_locator, language)

Entornos

Esta herramienta no utiliza ningún entorno de geoprocesamiento.

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados