ロケーターの作成 (Create Locator) (ジオコーティング)

概要

住所または場所を見つけたり、住所または場所のテーブルをポイント フィーチャのコレクションに変換したり、ポイント位置の住所を特定したりするために使用できるロケーターを作成します。

メモ:

このツールで作成したロケーターは、ArcGIS Pro 2.2 以降および Enterprise 10.6.1 以降で使用可能で、ArcMap のロケーター サービスとして使用できます。Enterprise 10.7 より前では、サポートされていないロケーター機能もあります。これは、追加機能として適用され、新しいバージョンのソフトウェアに追加されます。このツールで作成したロケーターを ArcMap のローカル ロケーターとして使用することはできません。

使用法

  • ロケーターの役割は、使用されるデータのタイプ (パーセル、道路中心線、郵便、対象ポイントなど) を定義し、ロケーターの構築時に使用する適切なフィールドとジオコーディング結果で返される情報を提供します。ArcGIS Pro で提供されるプライマリ ロケーターの役割では、次の一般的なタイプのロケーターを構築できます。

    • PointAddress - 家屋および建物の位置を表すポイントに基づく道路住所。ここにはサブアドレスが含まれます。これは家屋および建物のサブアドレス位置 (スイート、フロア、アパートなど) を表すポイントに基づいています。
    • Parcel - 不動産として見なされる土地区画を表すポイントまたはポリゴンに基づく住所またはパーセル名。この土地区画には、1 軒以上の家屋やその他の構造物が建てられていることがあります。通常は、住所とパーセル ID 番号が割り当てられています (例: 17 011100120063)。
    • StreetAddress - 一定範囲の数値から番地が内挿される道路に基づくストリート住所。交差点、道路名、道路延長が含まれます。
    • Point of Interest - 行政区画、場所名、ビジネス、ランドマーク、および地理フィーチャで構成されます (Starbucks など)。
    • DistanceMarker - 指定された起点から道路に沿った直線距離を通常はキロメートルまたはマイル単位で表すストリート住所。
    • DistanceRange - ライン フィーチャに基づいて道路中心線に沿って内挿された距離の値を表す距離マーカーの 1 つのタイプ。
    • Postal - ポリゴン参照データを使用して最適なリバース ジオコーディング結果を返す必要がある郵便番号、エクステンション付き郵便番号、郵便ローカリティ。
    • Localities - ポリゴン参照データを使用して最適なリバース ジオコーディング結果を返す必要がある行政ゾーンまたは地域 (都市、近隣、州など)。

  • [ロケーターの作成 (Create Locator)] ツールを使用して、複数ロールのロケーターを作成できます。複数ロールのロケーターを使用すると、複数の参照データ レイヤーとロールを単一のロケーターに結合して、一度に複数のタイプの位置を検索できます。

    複数ロールの単一ロケーターへの結合の詳細

  • サービスとして表されるフィーチャクラスおよびテーブルは、プライマリ参照データおよび代替名テーブルに使用できるデータ タイプとしてサポートされています。

  • 代替名テーブルは、サポートされているすべてのロケーター ロールに使用可能であり、プライマリ参照データ内のフィーチャの代替名に対応しています。

    代替名テーブルの詳細

  • このツールの出力は [コンポジット住所ロケーターの作成 (Create Composite Address Locator)] ツールへの入力として使用できます。

構文

arcpy.geocoding.CreateLocator(country_code, primary_reference_data, field_mapping, out_locator, language_code, {alternatename_tables}, {alternate_field_mapping}, {custom_output_fields}, {precision_type})
パラメーター説明データ タイプ
country_code

どの国に固有のジオコーディング ロジックをロケーターの参照データに適用するのかを指定します。

これは AS_DEFINED_IN_DATA によって指定でき、primary_reference_datafield_mapping から値をマッピングできます。または、USACANPRI などの 3 文字の国コード名を指定することでデータセット全体に適用できます。

作成するロケーターの指定された国に対する field_mapping パラメーターで使用するために提供される予想フィールド名を含む国のテンプレートを提供します。

  • AS_DEFINED_IN_DATA各フィーチャの参照データ内で定義された 3 文字の国コード値
  • ASM米領サモア
  • AUSオーストラリア
  • AUTオーストリア共和国
  • BELベルギー王国
  • CANカナダ
  • CHE スイス連邦
  • DEUドイツ
  • ESPスペイン
  • FRAフランス
  • GBR米領
  • GUMグアム
  • MNP北マリアナ諸島連邦
  • NLDオランダ王国
  • PRIプエルトリコ
  • VIR米国 バージン諸島
  • USA米国
  • UMI 米領小離島
String
primary_reference_data
[[reference_data, {role}],...]

ロケーターを作成するために使用される参照データのフィーチャクラスとその役割。プライマリ テーブルは 1 つの役割に対して 1 つだけ使用できます。

サービスとして表されるフィーチャクラスは、プライマリ参照データに使用できるデータ タイプとしてサポートされています。

注意:

プライマリ参照データにフィルター設定が定義されているか、フィーチャが選択されている場合、ロケーターを作成するときは、クエリおよび選択されたフィーチャのみが含められます。

メモ:

数百万のフィーチャで構成された参照データを含むロケーターを作成する場合は、一時ディレクトリが配置されるドライブ上に、サイズが通常の 3 ~ 4 倍以上のデータを書き込めるディスク空き容量が必要となります。これは、このロケーターが出力場所にコピーされる前に、このロケーターの構築に使用されるファイルがドライブ上の場所に書き込まれるためです。十分なディスク空き容量がない場合は、このツールで容量不足エラーが発生します。また、大きなロケーターを作成している場合、大量のメモリを消費するプロセスを処理するために、コンピューターに十分な RAM が搭載されている必要があります。

Value Table
field_mapping
[field_mapping,...]

ロケーターの役割によってサポートされるフィールドへのプライマリ参照データセット フィールドのマッピング。このパラメーターの各フィールド マッピングは次の形式で行われます。ここで、<role name> はロケーターの役割の名前、<locator role field name> はロケーターの役割でサポートされているフィールドの名前、<primary data>primary_reference_data パラメーターで使用されるデータの名前、および <primary data field name> はプライマリ参照データセット内のフィールドの名前です。

次に、プライマリ field_mapping の例を示します。

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

primary_reference_data パラメーター内のテーブルごとに関連フィールドを割り当てます。ロケーターの役割で使用されるオプションの参照データ フィールドを参照データセットにマッピングしない場合、フィールド名の代わりに <None> を使用してマッピングしないことを指定する必要はありません。

ロケーターの役割で使用される参照データ フィールドの <locator role field name> を決定するには、ArcGIS Pro[ロケーターの作成 (Create Locator)] ツールを開いてロケーターの役割を選択します。[フィールド マップ] パラメーターの [フィールド名] 列に表示される名前が、フィールドの役割のフィールド名です。

メモ:

代替名テーブルを使用する場合は、primary_reference_data の結合 ID を割り当てます。

カスタム出力フィールドを追加するには、custom_output_fields パラメーターと field_mapping パラメーターでそのフィールドの名前を定義する必要があります。field_mapping パラメーターでは '<locator role field name> <primary data field name>' という形式を使用します。ここで <locator role field name>'RoleName.CustomFieldName' として定義され、<primary data field name> は、上の例のマッピング後のフィールドに示すような、プライマリ参照データセットのフィールド名です。カスタム フィールドを [ストリート住所] の役割に追加する場合、道路のそれぞれの側に 'StreetAddress.CustomFieldName_Left''StreetAddress.CustomFieldName_Right' を割り当てる必要があります。

String
out_locator

出力住所ロケーター ファイル。

Address Locator
language_code

どの言語に固有のジオコーディング ロジックをロケーターの参照データに適用するのかを指定します。

言語コード フィールドがプライマリ参照データ内に存在する場合、言語コードを設定するとジオコーディングの結果が向上します。

これを指定するには、AS_DEFINED_IN_DATAlanguage_code に設定し、primary_reference_data 内の field_mapping から値をマッピングします。または、住所の言語を表す 3 文字の言語コード値 (ENG など) を使用して言語を指定することで、データセット全体に適用できます。

  • AS_DEFINED_IN_DATA各フィーチャの参照データ内で定義された 3 文字の言語コード値
  • BAQバスク語
  • CATカタロニア語
  • DUT オランダ語
  • ENG英語
  • FREフランス語
  • GERドイツ語
  • GLGガリシア語
  • ITA イタリア語
  • SPAスペイン語
String
alternatename_tables
[alternatename_tables,...]
(オプション)

プライマリ役割テーブル内のフィーチャの代替名を含むテーブル。

サービスとして表されるテーブルは、代替名テーブルに使用できるデータ タイプとしてサポートされています。

注意:

代替名テーブルにフィルター設定が定義されているか、レコードが選択されている場合、ロケーターを作成するときは、クエリおよび選択されたレコードのみが含められます。

Value Table
alternate_field_mapping
[alternate_field_mapping,...]
(オプション)

ロケーターの役割によってサポートされる代替データ フィールドに代替名テーブル フィールドをマッピングします。各フィールド マッピングは次の形式で行われます。ここで、<alternate name table role> は代替名テーブルの役割の名前、<locator role alternate field name> は代替名テーブル ロケーターの役割によってサポートされる代替データ フィールドの名前、<alternate data table> は代替名テーブルの名前、および <alternate data table field name> は代替名テーブルのフィールドの名前です。alternatename_tables 内のテーブルごとに関連フィールドを割り当てます。

次に、alternate_field_mappingalternatename_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'"
メモ:

データが正規化されており、プライマリ テーブルには都市名の値が含まれていないものの代替名テーブルには含まれている場合、Primary Name Indicator フィールドは、そのレコードがプライマリ フィールドかどうかを示す値 (true/false や Yes/No など) を含む代替名テーブル内のフィールドにマッピングできます。このフィールドを関連付けないと、代替名テーブル内の最初のレコードがプライマリ値として使用されます。

String
custom_output_fields
[custom_output_fields,...]
(オプション)

ジオコード結果に出力フィールドを追加します。このパラメーターに指定する値により、ジオコード結果から返される出力フィールドの名前が定義されますが、新しいフィールドは参照データ内のフィールドにそれぞれマッピングする必要があります。この新しい出力フィールドは、ロケーターで使用されたすべての役割に対して適用されます。ロケーターの役割に左側と右側が含まれる場合、フィールド名の末尾には _left と _right が追加されます。

メモ:

最初に field_mapping パラメーター内のカスタム出力フィールド名を追加し、次に custom_output_fields パラメーター内の名前をリストする必要があります。

String
precision_type
(オプション)

ロケーターの精度を指定します。

メモ:

GLOBAL_EXTRA_HIGH または LOCAL_EXTRA_HIGH が設定されたロケーターは、ArcGIS Pro 2.6 以降、Enterprise 10.8.1 以降で使用できます。

  • GLOBAL_EXTRA_HIGH精度はおよそ 1 センチメートルで、グローバルに一定です。
  • GLOBAL_HIGH 精度はおよそ 0.5 センチメートルで、グローバルに一定です。これがデフォルトです。
  • LOCAL_EXTRA_HIGHローカル領域では精度が高くなります。
String

コードのサンプル

CreateLocator (ロケーターの作成) の例 1 (スタンドアロン スクリプト)

次の Python スクリプトは、スタンドアロン スクリプトで CreateLocator 関数を使用する方法を示しています。

# 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")
CreateLocator (ロケーターの作成) の例 2 (Python ウィンドウ)

次の Python スクリプトは、イミディエイト モードで CreateLocator 関数を使用する方法を示しています。

# 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 (ロケーターの作成) の例 3 (Python ウィンドウ)

次の Python スクリプトは、イミディエイト モードで CreateLocator 関数を使用する方法を示しています。

# 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)
CreateLocator (ロケーターの作成) の例 4 (スタンドアロン スクリプト)

次の Python スクリプトは、イミディエイト モードで CreateLocator 関数を使用する方法を示しています。

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

環境

このツールは、ジオプロセシング環境を使用しません。

ライセンス情報

  • Basic: はい
  • Standard: はい
  • Advanced: はい

関連トピック