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.
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 allgemeine 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.
- Flurstück: Eine Adresse oder ein Flurstücksname, die bzw. der auf Punkten oder Polygonen basiert, die ein als Grundstück eingetragenes Stück Land darstellen. Meist umfasst es ein oder auch mehrere Häuser oder andere Strukturen. Einem Flurstück ist in der Regel eine Adresse und eine Flurstücks-Identifikationsnummer zugewiesen, z. B. "17 011100120063".
- 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.
- 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.
- 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.
Das Werkzeug Locator erstellen kann zum Erstellen eines Mehrfachrollen-Locators verwendet werden. Mit einem Mehrfachrollen-Locator können Sie mehrere Referenzdaten-Layer und -Rollen in einem einzelnen Locator kombinieren, um gleichzeitig nach verschiedenen Arten von Orten zu suchen.
Weitere Informationen zum Kombinieren mehrerer Rollen zu einem einzigen Locator
Als Services dargestellte Feature-Classes und Tabellen sind unterstützte Datentypen zur Verwendung als primäre Referenzdaten und Tabellen mit alternativen Namen.
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.
Die Ausgabe dieses Werkzeugs kann als Eingabe für das Werkzeug Kombinierten Adressen-Locator erstellen verwendet werden.
Syntax
arcpy.geocoding.CreateLocator(country_code, primary_reference_data, field_mapping, out_locator, language_code, {alternatename_tables}, {alternate_field_mapping}, {custom_output_fields}, {precision_type})
Parameter | Erklärung | Datentyp |
country_code | Gibt an, wo landesspezifische Geokodierungslogik auf die Referenzdaten für den Locator angewendet wird. 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.
| 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. Als Services dargestellte Feature-Classes sind unterstützte Datentypen zur Verwendung als Referenzdaten. Vorsicht:Wenn eine Definitionsabfrage für die primären Referenzdaten definiert wird oder wenn Features ausgewählt wurden, werden beim Erstellen des Locators nur die abgefragten und ausgewählten Features einbezogen. Hinweis:Beim Erstellen eines Locators mit Referenzdaten, die Millionen von Features enthalten, ist mindestens das drei- bis vierfache 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 ein Fehler auf, sobald nicht genügend Speicher für das Ausführen des Werkzeugs verfügbar ist. Beim Erstellen von großen Locators für die Verarbeitung umfangreicher, speicherintensiver Prozesse muss Ihr Computer über genügend RAM verfügen. | 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. Alle Feldzuordnungen dieses Parameters weisen das nachstehende Format auf. Dabei steht <role name> für den Namen der Locator-Rolle, <locator role field name> für den Namen des von der Locator-Rolle unterstützten Feldes, <primary data> für den Namen der im Parameter primary_reference_data verwendeten Daten und <primary data field name> für den Namen des Feldes im primären Referenz-Dataset. Nachfolgend finden Sie ein Beispiel für eine primäre field_mapping.
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 in ArcGIS Pro 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 wird. 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.
| String |
alternatename_tables [alternatename_tables,...] (optional) | Die Tabellen, die alternative Namen für die Features in den Tabellen mit primären Rollen enthalten. Als Services dargestellte Tabellen sind unterstützte Datentypen zur Verwendung als Tabellen mit alternativen Namen. Vorsicht:Wenn eine Definitionsabfrage für die Tabelle mit alternativen Namen definiert wird oder wenn Datensätze ausgewählt wurden, werden beim Erstellen des Locators nur die abgefragten und ausgewählten Datensätze einbezogen. | Value Table |
alternate_field_mapping [alternate_field_mapping,...] (optional) | Ordnet Felder in der Tabelle mit alternativen Namen zu Feldern mit alternativen Daten, die von der Locator-Rolle unterstützt werden, zu. Alle Feldzuordnungen müssen das nachstehende Format aufweisen. Dabei steht <alternate name table role> für den Namen der Rolle mit einer Tabelle alternativer Namen und <locator role alternate field name> für den Namen des Feldes mit alternativen Daten, das von der Locator-Rolle mit einer Tabelle alternativer Namen unterstützt wird. <alternate data table> wiederum ist der Name der Tabelle mit alternativen Namen und <alternate data table field name> der Name des Feldes in der Tabelle mit alternativen Namen. Ordnen Sie die jeweiligen Felder für die einzelnen Tabellen in alternatename_tables zu. Nachfolgend finden Sie ein Beispiel für alternate_field_mapping für alternatename_tables.
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 |
precision_type (optional) | Gibt die Genauigkeit des Locators an. Hinweis:Mit der Genauigkeit GLOBAL_EXTRA_HIGH oder LOCAL_EXTRA_HIGH erstellte Locators können in ArcGIS Pro 2.6 oder höher sowie in Enterprise 10.8.1 oder höher verwendet werden.
| String |
Codebeispiel
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_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")
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")
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)
Das folgende Python-Skript veranschaulicht, wie die Funktion CreateLocator im unmittelbaren Modus verwendet wird.
# 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)
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja
Verwandte Themen
- Kombinierten Adressen-Locator erstellen
- Grundlagen zum Erstellen eines Locators
- Primäre Locator-Rollen
- Rollen mit Tabellen alternativer Namen
- Felder der Locator-Rollen
- Adressenelemente
- Veröffentlichen eines Geokodierungsservice
- Freigeben eines Locators
- Überblick über die Toolbox "Geocoding"
- Suchen eines Geoverarbeitungswerkzeugs