Skip To Content

Locator erstellen

Zusammenfassung

Erstellt einen Locator für die Suche nach der Position einer Adresse oder eines Ortes, um eine Tabelle mit Adressen oder Orten in eine Sammlung von Punkt-Features zu konvertieren oder um die Adresse einer Punktposition zu ermitteln.

Hinweis:

Von diesem Werkzeug erstellte Locators können in ArcGIS Pro 2.2 oder höher, Enterprise 10.6.1 oder höher und als Locator-Service in ArcMap verwendet werden. Möglicherweise werden nicht alle Locator-Funktionen in niedrigeren Versionen als Enterprise 10.7 unterstützt. Dies gilt für zusätzliche Funktionen, die in neueren Versionen der Software eingeführt wurden. Von diesem Werkzeug erstellte Locators können nicht als lokale Locators in ArcMap verwendet werden. Wenn Sie einen Locator in ArcMap lokal verwenden möchten, verwenden Sie das Werkzeug Adressen-Locator erstellen.

Verwendung

  • Die Locator-Rolle definiert den verwendeten Datentyp (Flurstück, Straßenmittelachse, Postalisch, Point of Interest usw.) und stellt die entsprechenden Felder bereit, die verwendet werden sollen, wenn Locator und Informationen erstellt werden, die im Geokodierungsergebnis zurückgegeben werden. Mit den mit ArcGIS Pro bereitgestellten primären Locator-Rollen können Sie folgende Locator-Typen erstellen:

    • PointAddress: Eine Straßenadresse basierend auf Punkten, die Haus- oder Gebäudestandorte darstellen. Hierzu zählen Unteradressen, die auf Punkten basieren, die Unteradressen von Haus- und Gebäudestandorten etwa für eine Suite, eine Etage oder ein Apartment darstellen.
    • StreetAddress: Eine Hausanschrift, die auf Straßen basiert, wobei die Hausnummer aus einem Nummernbereich interpoliert wird. Hierzu zählen Kreuzungen, Straßennamen und Erweiterungen der Straßenadresse.
    • Point of Interest: Besteht aus Verwaltungsgebieten, Ortsnamen, Unternehmen, Landmarks und geographischen Features, z. B. Starbucks.
    • Postal: Postleitzahlen, Postleitzahlen mit Erweiterungen und postalische Bestimmungsorte, bei denen Polygon-Referenzdaten verwendet werden sollten, damit optimale Rückwärts-Geokodierungsergebnisse zurückgegeben werden können.
    • Localities: Verwaltungszonen oder -gebiete wie Städte, Wohnquartiere, Bundesländer usw., bei denen Polygon-Referenzdaten verwendet werden sollten, damit optimale Rückwärts-Geokodierungsergebnisse zurückgegeben werden können.
    • DistanceMarker: Eine Straßenadresse, die die lineare Entfernung entlang einer Straße, üblicherweise in Kilometern oder Meilen, von einem bestimmten Ausgangsort angibt.
    • DistanceRange: Ein Entfernungsmarker, der die interpolierten Entfernungswerte entlang einer Straßenmittelachse basierend auf Linien-Features darstellt.

  • Tabellen mit alternativen Namen können für alle unterstützten Locator-Rollen verwendet werden. Sie unterstützen alternative Namen für die Features in den primären Referenzdaten.

    Weitere Informationen zu Tabellen mit alternativen Namen

  • Die Ausgabe dieses Werkzeugs kann als Eingabe für das Werkzeug Kombinierten Adressen-Locator erstellen verwendet werden.

Syntax

CreateLocator(country_code, primary_reference_data, field_mapping, out_locator, language_code, {alternatename_tables}, {alternate_field_mapping}, {custom_output_fields})
ParameterErklärungDatentyp
country_code

Gibt an, wo landesspezifische Geokodierungslogik auf die Referenzdaten für den Locator angewendet werden soll.

Sie kann mit AS_DEFINED_IN_DATA festgelegt werden, und ein Wert kann aus primary_reference_data in field_mapping zugeordnet werden. Alternativ kann sie auch auf das gesamte Dataset angewendet werden, indem der aus drei Zeichen bestehende Ländercodename wie USA, CAN oder PRI angegeben wird.

Sie stellt eine landesspezifische Vorlage mit den erwarteten Feldnamen bereit, die zur Verwendung durch den Parameter field_mapping für das angegebene Land des zu erstellenden Locators zur Verfügung gestellt werden.

  • AS_DEFINED_IN_DATAEin in den Referenzdaten für die einzelnen Features definierter, aus drei Zeichen bestehender Sprachcodewert.
  • ASMAmerikanisch-Samoa
  • CANKanada
  • DEUDeutschland
  • FRAFrankreich
  • GBRGroßbritannien
  • GUMGuam
  • MNPNördliche Marianen
  • PRIPuerto Rico
  • VIRUS- Amerikanischen Jungferninseln
  • USAVereinigte Staaten
  • UMIKleinere Amerikanische Überseeinseln
String
primary_reference_data
[[reference_data, {role}],...]

Die Feature-Classes mit Referenzdaten und deren Rollen, die zum Erstellen eines Locators verwendet werden.

Pro Rolle kann nur eine Primärtabelle verwendet werden.

Hinweis:

Beim Erstellen eines Adressen-Locators mit Referenzdaten, die Millionen von Features enthalten, ist mindestens das 3- bis 4-fache der Größe dieser Daten als freier Festplattenspeicher in Ihrem Temp-Verzeichnis notwendig, da Dateien, die zum Erstellen des Locators verwendet werden, in dieses Verzeichnis geschrieben werden, bevor der Locator in das Ausgabeverzeichnis kopiert wird. Wenn auf der Festplatte nicht genügend Speicher verfügbar ist, tritt beim Ausführen des Werkzeugs irgendwann ein Fehler auf, sobald der vorhandene Speicher belegt ist. Beachten Sie zudem, dass beim Erstellen von sehr großen Locators für die Verarbeitung umfangreicher, speicherintensiver Prozesse ein Computer mit genügend RAM benötigt wird.

Value Table
field_mapping
[field_mapping,...]

Die Zuordnung von Feldern mit primärem Referenz-Dataset zu Feldern, die von der Locator-Rolle unterstützt werden. Jede Feldzuordnung dieses Parameters weist folgendes Format auf:

Nachfolgend finden Sie ein Beispiel für eine primäre field_mapping.

# <locator role field name> <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'"

<locator role field name> ist der Name des Feldes, das von der Locator-Rolle unterstützt wird, während <primary data field name> der Name des Feldes im primären Referenz-Dataset ist. Felder mit einem Sternchen (*) neben dem Namen sind für die Locator-Rolle erforderlich. Ordnen Sie die jeweiligen Felder für die einzelnen Tabellen im Parameter primary_reference_data zu.

Wenn Sie ein optionales, von der Locator-Rolle verwendetes Referenzdatenfeld keinem Feld im Referenz-Dataset zuordnen möchten, müssen Sie nicht <None> anstelle eines Feldnamens auswählen, um anzugeben, dass keine Zuordnung stattfindet.

Um den <locator role field name> für ein von einer Locator-Rolle verwendetes Referenzdatenfeld festzulegen, öffnen Sie das Werkzeug Locator erstellen und wählen die Locator-Rolle aus. Der in der Spalte Feldname des Parameters Feldzuordnung angezeigte Name ist der Rollenfeldname des Feldes.

Hinweis:

Wenn Sie eine Tabelle mit alternativen Namen verwenden, wird die Join-ID in primary_reference_data zugeordnet.

Um benutzerdefinierte Ausgabefelder hinzuzufügen, müssen die Namen der Felder im Parameter custom_output_fields sowie der Parameter field_mapping definiert werden. Der Parameter field_mapping weist das Format '<locator role field name> <primary data field name>' auf, wobei <locator role field name> als 'RoleName.CustomFieldName' definiert und <primary data field name> der Name des Feldes im primären Referenz-Dataset ist, wie in den zugeordneten Feldern im obigen Beispiel dargestellt. Wenn einer Straßenadressen-Rolle ein benutzerdefiniertes Feld hinzugefügt wird, müssen Sie 'StreetAddress.CustomFieldName_Left' und 'StreetAddress.CustomFieldName_Right' für jede Seite der Straße zuordnen.

String
out_locator

Die Datei des Ausgabe-Adressen-Locators.

Address Locator
language_code

Gibt an, wo sprachspezifische Geokodierungslogik auf die Referenzdaten für den Locator angewendet werden soll.

Wenn in den primären Referenzdaten ein Sprachcodefeld vorhanden ist, können die Ergebnisse der Geokodierung durch Bereitstellung eines Sprachcodes verbessert werden.

Er kann durch Festlegen von AS_DEFINED_IN_DATA als language_code und durch Zuordnen eines Werts aus primary_reference_data in field_mapping angegeben werden. Alternativ kann er auf das gesamte Dataset angewendet werden, indem eine Sprache mithilfe eines aus drei Zeichen bestehenden Sprachcodes angegeben wird, der die Sprache der Adresse angibt, z. B. ENG.

  • AS_DEFINED_IN_DATAEin in den Referenzdaten für die einzelnen Features definierter, aus drei Zeichen bestehender Sprachcodewert.
  • ENGEnglisch
  • FREFranzösisch
  • GERDeutsch
  • SPASpanisch
String
alternatename_tables
[alternatename_tables,...]
(optional)

Die Tabellen, die alternative Namen für die Features in den Tabellen mit primären Rollen enthalten.

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

Die Zuordnung von Feldern in der Tabelle mit alternativen Namen zu Feldern mit alternativen Daten, die von der Locator-Rolle unterstützt werden. Alle Feldzuordnungen müssen das folgende Format aufweisen:

Nachfolgend finden Sie ein Beispiel für alternate_field_mapping für alternatename_tables.

# <locator role alternate field name> <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'"

<locator role alternate field name> ist der Name des Feldes mit alternativen Daten, das von der Locator-Rolle unterstützt wird, während <alternate data table field name> der Name des Feldes in der Tabelle mit alternativen Namen ist. Felder mit einem Sternchen (*) neben dem Namen sind für die Locator-Rolle erforderlich. Ordnen Sie die jeweiligen Felder für die einzelnen Tabellen in alternatename_tables zu.

Hinweis:

Wenn die Daten normalisiert sind und Namenswerte für Städte nicht in der Primärtabelle, sondern in der Tabelle mit alternativen Namen enthalten sind, kann das Feld Primary Name Indicator einem Feld in der Tabelle mit alternativen Namen zugeordnet werden, das einen Wert enthält, der angibt, ob es sich bei dem Datensatz um das Primärfeld handelt (z. B. true/false oder ja/nein). Wenn das Feld nicht zugeordnet wird, wird der erste Datensatz in der Tabelle mit alternativen Namen als primärer Wert verwendet.

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

Fügt dem Ergebnis der Geokodierung Ausgabefelder hinzu. Die für diesen Parameter angegebenen Werte definieren die Namen der Ausgabefelder, die vom Ergebnis der Geokodierung zurückgegeben werden. Dabei muss jedoch jedes neue Feld einem Feld in den Referenzdaten zugeordnet werden. Dieses neue Ausgabefeld wird für alle Rollen übernommen, die im Locator verwendet wurden. Wenn die Locator-Rolle eine linke und rechte Seite enthält, wird "_left" bzw. "_right" an das Ende des Feldnamens angehängt.

Hinweis:

Sie müssen zuerst die Namen der benutzerdefinierten Ausgabefelder in den Parameter field_mapping aufnehmen und danach die Namen im Parameter custom_output_fields auflisten.

String

Codebeispiel

CreateLocator – Beispiel 1 (eigenständiges Skript)

Das folgende Python-Skript veranschaulicht die Verwendung der Funktion CreateLocator in einem eigenständigen Skript.

# 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_maping = "'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", None, None, None)
CreateLocator – Beispiel 2 (Python-Fenster)

Das folgende Python-Skript veranschaulicht, wie die Funktion CreateLocator im unmittelbaren Modus verwendet wird.

# 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")
CreateLocator – Beispiel 3 (Python-Fenster)

Das folgende Python-Skript veranschaulicht, wie die Funktion CreateLocator im unmittelbaren Modus verwendet wird.

# 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)

Umgebungen

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen