Skip To Content

ロケーターの作成 (Create Locator)

概要

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

備考:

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

使用法

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

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

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

    代替名テーブルの詳細

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

構文

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

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

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

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

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

ロケーターを作成するために使用される参照データのフィーチャクラスとその役割。

プライマリ テーブルは 1 つの役割に対して 1 つだけ使用できます。

備考:

何百万ものフィーチャを含む参照データで住所ロケーターを作成する場合は、temp ディレクトリを含むドライブにデータ サイズの少なくとも 3 ~ 4 倍の空きディスク容量が必要です。この場所には、ロケーターが出力場所にコピーされる前に、ロケーターの作成に使用されるファイルが書き込まれるからです。十分なディスク空き容量がない場合は、このツールの実行中に容量不足エラーが発生します。また、非常に大きなロケーターを作成している場合、大量のメモリを消費するプロセスを処理するために、コンピューターに十分な RAM が搭載されている必要があるので注意してください。

Value Table
field_mapping
[field_mapping,...]

ロケーターの役割によってサポートされるフィールドへのプライマリ参照データセット フィールドのマッピング。このパラメーターでの各フィールドのマッピングは次の形式に則しています。

次に、プライマリ 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> はロケーターの役割によってサポートされるフィールドの名前を表します。また、<primary data field name> はプライマリ参照データセットのフィールド名を表します。名前の横にアスタリスク (*) の付いたフィールドは、ロケーターの役割では必須です。primary_reference_data パラメーター内のテーブルごとに関連フィールドを割り当てます。

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

ロケーターの役割で使用される参照データ フィールドの <locator role field name> を決定するには、[ロケーターの作成 (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 文字の言語コード値。
  • ENG英語
  • FREフランス語
  • GERドイツ語
  • SPAスペイン語
String
alternatename_tables
[alternatename_tables,...]
(オプション)

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

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

ロケーターの役割によってサポートされる代替データ フィールドへの代替名テーブル フィールドのマッピング。各フィールド マッピングでは、次の形式を使用します。

次に、alternate_field_mappingalternatename_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> はロケーターの役割によってサポートされる代替データ フィールドの名前を表します。また、<alternate data table field name> は代替名テーブルのフィールド名を表します。名前の横にアスタリスク (*) の付いたフィールドは、ロケーターの役割では必須です。alternatename_tables 内のテーブルごとに関連フィールドを割り当てます。

備考:

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

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

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

備考:

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

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_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 (ロケーターの作成) の例 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)

環境

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

ライセンス情報

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

関連トピック