Créer un localisateur (Géocodage)

Résumé

Permet de créer un localisateur utilisable pour trouver l’emplacement d’une adresse ou d’un lieu, de convertir une table d’adresses ou des lieux en une collection d’entités ponctuelles ou encore d’identifier l’adresse d’un emplacement ponctuel.

Remarque :

Les localisateurs créés avec cet outil peuvent être utilisés dans ArcGIS Pro 2.2 ou une version ultérieure, Enterprise 10.6.1 ou une version ultérieure et en tant que service local dans ArcMap. Toutes les fonctionnalités de localisateur ne sont peut-être pas prises en charge dans Enterprise, avant la version 10.7. Cela sera désormais le cas, puisque des fonctionnalités supplémentaires sont ajoutées aux versions récentes du logiciel. Les localisateurs créés avec cet outil ne peuvent pas être utilisés en tant que localisateur local dans ArcMap.

Utilisation

  • Le rôle de localisateur définit le type de données exploitées (parcelle, axe médian de la rue, code postal, point d’intérêt, etc.) et fournit les champs qu’il convient d’utiliser lors de la génération du localisateur et des informations renvoyées dans les résultats du géocodage. Les principaux rôles de localisateur fournis avec ArcGIS Pro permettent de créer les types de localisateur courants suivants :

    • PointAddress : adresse reposant sur des points qui représentent l’emplacement des maisons et des bâtiments. Elle comporte une sous-adresse basée sur les points représentant les emplacements de sous-adresse des maisons ou des bâtiments, tels que les suites, les étages ou encore les appartements.
    • Parcelle : adresse ou nom de parcelle basé sur des points ou des polygones représentant une parcelle de terrain considérée comme un bien immobilier et qui peut inclure une ou plusieurs maisons ou structures généralement dotées d’une adresse et d’un numéro d’identification de la parcelle, comme 17 011100120063.
    • StreetAddress : adresse basée sur les rues où le numéro de domicile est interpolé à partir d’une plage de numéros. Elle comporte les intersections, les noms et les prolongements de rue.
    • Point d’intérêt : il se compose de divisions administratives, de noms de lieux, de commerces, d’entités géographiques et de lieux d’intérêt. Exemple : Starbucks.
    • DistanceMarker : adresse qui représente la distance linéaire le long d’une rue, généralement en kilomètres ou en miles, depuis un emplacement d’origine.
    • DistanceRange : type de repère de distance représentant les valeurs de distance interpolées le long de l’axe médian de la rue basé sur des entités.
    • Postal : codes postaux, codes postaux avec extensions et localités postales pour lesquels les données de référence des polygones doivent être utilisées pour renvoyer les meilleurs résultats de géocodage inverse.
    • Localités : zones administratives ou autres telles que les villes, les quartiers, les États, etc. pour lesquelles les données de référence des polygones doivent être utilisées pour renvoyer les meilleurs résultats de géocodage inverse.

  • L’outil Créer un localisateur peut être utilisé pour créer un localisateur multirôle. Un localisateur multirôle vous permet de combiner plusieurs couches de données de référence et rôles au sein d’un seul localisateur afin de rechercher plusieurs types d’emplacements simultanément.

    Plus d’informations sur la façon de combiner plusieurs rôles dans un même localisateur

  • Les classes d’entités et les tables représentées en tant que services ne sont pas des types de données pris en charge pour une utilisation en tant que données de référence principales et que tables des autres noms.

  • Les tables des autres noms peuvent servir pour tous les rôles de localisateur pris en charge et identifient les autres noms des entités dans les données de référence principales.

    Pour en savoir plus sur les tables de noms secondaires.

  • La sortie de cet outil peut être utilisée comme entrée de l’outil Créer un localisateur d’adresses composite.

Syntaxe

CreateLocator(country_code, primary_reference_data, field_mapping, out_locator, language_code, {alternatename_tables}, {alternate_field_mapping}, {custom_output_fields}, {precision_type})
ParamètreExplicationType de données
country_code

Indique là où la logique de géocodage propre à un pays doit s’appliquer aux données de référence pour le localisateur considéré.

Il peut être spécifié par AS_DEFINED_IN_DATA et une valeur pouvant être appariée depuis primary_reference_data dans field_mapping ; il est également possible de l’appliquer à l’ensemble du jeu de données en spécifiant un nom de code de pays de trois caractères tels que USA, CAN ou PRI.

Il fournit un modèle de pays contenant les noms de champs prévus qui sont mis à disposition du paramètre field_mapping pour le pays spécifié du localisateur à créer.

  • AS_DEFINED_IN_DATAValeur du code de pays comportant trois caractères définie dans les données de référence pour chaque entité
  • ASMSamoa américaines
  • AUSAustralie
  • AUTAutriche
  • BELBelgique
  • CANCanada
  • CHE Suisse
  • DEUAllemagne
  • ESPEspagne
  • FRAFrance
  • GBRGrande-Bretagne
  • GUMGuam
  • MNPMariannes du Nord (îles)
  • NLDPays-Bas
  • PRIPorto Rico
  • VIRÎles Vierges américaines
  • USAÉtats-Unis
  • UMI Dépendances américaines du Pacifique
String
primary_reference_data
[[reference_data, {role}],...]

Classes d’entités des données de référence, et leurs rôles, utilisées pour créer le localisateur. Seule une table principale peut être utilisée par rôle.

Les classes d’entités représentée en tant que services sont des types de données pris en charge pour une utilisation en tant que données de référence principales.

Attention :

Lorsqu’un ensemble de définition est défini pour les données de référence principales ou que des entités sont sélectionnées, seules les entités interrogées et sélectionnées sont incluses lors de la création du localisateur.

Remarque :

Lorsque vous créez un localisateur à l’aide de données de référence contenant des millions d’entités, vous devez disposer d’un espace disque disponible équivalant à trois à quatre fois le volume des données sur le lecteur contenant votre répertoire temporaire. En effet, les fichiers utilisés pour générer le localisateur sont enregistrés dans le répertoire temporaire avant que le localisateur ne soit copié dans l’emplacement en sortie. Si vous ne disposez pas d’un espace disque suffisant, l’exécution de l’outil échoue par manque d’espace. Lors de la création de localisateurs de grande envergure, votre machine doit également être dotée de suffisamment de RAM pour traiter des processus qui sollicitent considérablement la mémoire.

Value Table
field_mapping
[field_mapping,...]

Appariement des champs du jeu de données de référence principales pris en charge par le rôle de localisateur. Chaque appariement de champ pour ce paramètre est au format suivant, dans lequel <role name> est le nom du rôle de localisateur, <locator role field name> est le nom du champ pris en charge par le rôle de localisateur, <primary data> est le nom des données utilisées dans le paramètre primary_reference_data et <primary data field name> est le nom du champ dans le jeu de données de référence principal.

Vous trouverez ci-après l’exemple d’un field_mapping principal.

# <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'"

Appariez les champs pertinents pour chaque table dans le paramètre primary_reference_data. Si vous choisissez de ne pas apparier un champ de données de référence facultatif utilisé par le rôle de localisateur d’adresses à un champ d’un jeu de données de référence, spécifiez qu’il n’y a pas d’appariement en utilisant <None> à la place du nom de champ.

Pour déterminer le paramètre <locator role field name> d’un champ de données de référence utilisé par un rôle de localisateur, ouvrez l’outil Créer un localisateur dans ArcGIS Pro et sélectionnez le rôle de localisateur. Le nom qui s’affiche dans la colonne Field Name (Nom du champ) du paramètre Field Mapping (Appariement de champ) est le nom du champ de rôle du champ.

Remarque :

Si vous utilisez la table des autres noms, appariez l’ID de jointure dans primary_reference_data.

Pour ajouter des champs en sortie personnalisés, les noms des champs doivent être définis dans le paramètre custom_output_fields ainsi que dans le paramètre field_mapping. Le paramètre field_mapping utilise le format '<locator role field name> <primary data field name>', dans lequel <locator role field name> est défini comme 'RoleName.CustomFieldName' et <primary data field name> désigne le nom du champ dans le jeu de données de référence principal, comme indiqué dans les champs appariés figurant dans l’exemple ci-dessus. Si un champ personnalisé est ajouté à un rôle Street Address (Adresse), vous devez apparier 'StreetAddress.CustomFieldName_Left' et 'StreetAddress.CustomFieldName_Right' de chaque côté de la rue.

String
out_locator

Fichier de localisateur d’adresses en sortie.

Address Locator
language_code

Indique là où la logique de géocodage propre à une langue doit s’appliquer aux données de référence pour le localisateur considéré.

Si un champ de code de langue existe dans les données de référence principales, le fait de fournir un code de langue contribue à améliorer les résultats du géocodage.

Il peut être spécifié en sélectionnant AS_DEFINED_IN_DATA en tant que language_code et en associant une valeur issue de primary_reference_data dans field_mapping ; il est également possible de l’appliquer à l’ensemble du jeu de données. Il suffit pour cela de sélectionner une langue via un code de langue composé de trois caractères qui représente la langue d’une adresse, par exemple ENG.

  • AS_DEFINED_IN_DATAValeur du code de langue comportant trois caractères définie dans les données de référence pour chaque entité
  • BAQBasque
  • CATCatalan
  • DUT Néerlandais
  • ENGEnglish (Anglais)
  • FREFrançais
  • GERAllemand
  • GLGGalicien
  • ITA Italien
  • SPAEspagnol
String
alternatename_tables
[alternatename_tables,...]
(Facultatif)

Tables contenant les autres noms des entités figurant dans les tables de rôles principales.

Les tables représentées en tant que services sont des types de données pris en charge pour une utilisation en tant que tables des autres noms.

Attention :

Lorsqu’un ensemble de définition est défini pour la table de noms secondaires ou que des enregistrements sont sélectionnés, seuls les enregistrements interrogés et sélectionnés sont inclus lors de la création du localisateur.

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

Apparie des champs de la table des autres noms aux champs des autres données pris en charge par le rôle de localisateur. Chaque appariement de champ doit utiliser le format suivant, dans lequel <alternate name table role> est le nom du rôle de la table des noms secondaires, <locator role alternate field name> est le nom du champ des données secondaires pris en charge par le rôle de localisateur de la table des noms secondaires, <alternate data table> est le nom de la table des noms secondaires et <alternate data table field name> est le nom du champ dans la table des noms secondaires. Appariez les champs pertinents pour chaque table dans alternatename_tables.

Vous trouverez ci-après l’exemple d’un alternate_field_mapping pour 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'"
Remarque :

Si les données sont normalisées et que la table principale ne contient pas de valeurs de noms de ville à la différence de la table des autres noms, il est possible d’apparier le champ Primary Name Indicator à un champ figurant dans la table des autres noms qui contient une valeur indiquant si l’enregistrement est le champ principal (vrai/faux ou Oui/Non, par exemple). Si ce champ n’est pas apparié, le premier enregistrement dans la table des autres noms est utilisé comme valeur principale.

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

Ajoute les champs en sortie aux résultats du géocode. Les valeurs spécifiées pour ce paramètre définissent les noms des champs en sortie qui sont renvoyés par les résultats du géocode ; toutefois, chaque nouveau champ est apparié à un champ de vos données de référence. Ce nouveau champ en sortie s’applique à tous les rôles utilisés dans le localisateur. Si le rôle du localisateur possède un côté droit et un côté gauche, _left et _right sont ajoutés à la fin du nom du champ.

Remarque :

Vous devez d’abord inclure les noms de champs en sortie dans le paramètre field_mapping, puis dressez la liste des noms dans le paramètre custom_output_fields.

String
precision_type
(Facultatif)

Spécifie la précision du localisateur.

Remarque :

Les localisateurs créés avec GLOBAL_EXTRA_HIGH ou LOCAL_EXTRA_HIGH peuvent être utilisés dans ArcGIS Pro 2.6 ou version ultérieure, Enterprise 10.8.1 ou version ultérieure.

  • GLOBAL_EXTRA_HIGHPrécision d’environ 1 centimètre, cohérence mondiale.
  • GLOBAL_HIGH Précision d’environ 0,5 mètre, cohérence mondiale. Il s’agit de l’option par défaut.
  • LOCAL_EXTRA_HIGHPrécision accrue pour les zones locales
String

Exemple de code

Exemple 1 d’utilisation de l’outil CreateLocator (script autonome)

Le script Python ci-dessous illustre l'utilisation de l'outil CreateLocator dans un script autonome.

# 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")
Exemple 2 d’utilisation de l’outil CreateLocator (fenêtre Python)

Le script Python ci-dessous illustre l’utilisation de la fonction CreateLocator en mode immédiat.

# 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")
Exemple 3 d’utilisation de l’outil CreateLocator (fenêtre Python)

Le script Python ci-dessous illustre l’utilisation de la fonction CreateLocator en mode immédiat.

# 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)
Exemple 4 d’utilisation de l’outil CreateLocator (script autonome)

Le script Python ci-dessous illustre l’utilisation de la fonction CreateLocator en mode immédiat.

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

Environnements

Cet outil n'utilise pas d’environnement de géotraitement.

Informations de licence

  • Basic: Oui
  • Standard: Oui
  • Advanced: Oui

Rubriques connexes