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

サマリー

1 つのフィールドに格納されているすべてのフィーチャの一意の名前または値を含む参照データを使用してロケーターを作成します。 このツールで作成したロケーターは、幅広く応用できます。 これを使用して、水道メーター、短い地名、無線基地局、または位置の特定に使用される英数字の文字列 (たとえば、N1N115) など、フィーチャの名前や一意の属性を検索できます。

このツールで作成したロケーターは、単一フィールド内のインデックス付けされた値を使用して、その単一フィールド内の値を検索してポイントのコレクションとして値を返すか、ポイント位置に近いフィーチャを特定します。 このツールで作成したロケーターを使用してジオコーディングできる住所のテーブルには、位置を特定するために使用できる同じ一意の名前または値の単一フィールドが必要です。

注意:

このツールで作成したロケーターは、ArcGIS Pro 2.5 以降および Enterprise 10.8 以降で使用可能で、ArcMap のロケーター サービスとして使用できます。 このツールで作成したロケーターを ArcMap のローカル ロケーターとして使用することはできません。

使用法

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

  • このツールは、参照データとしてポイントおよびポリゴン ジオメトリを含むフィーチャクラスをサポートしています。

  • このツールで作成したロケーターを使用すると、5 単語以下の一意の識別子または短い文字列値を検索できます。

  • このツールによって作成されたロケーターでは、「座標 (緯度/経度、MGRS、DD、または USNG) のグローバル検索」がサポートされています。 ロケーターの構築に使用されるプライマリ参照データに少なくとも 1 つのフィーチャが含まれている必要があります。 座標検索のサポートは、ロケーターの [ロケーターのプロパティ] ダイアログ ボックスの [ジオコーディング オプション] ページにある [サポートするカテゴリ] で無効または有効にします。

  • ロケーターを作成するとき、参照データのその他のフィールドを指定して、カスタム出力フィールドとしてロケーターに追加できます。 これらのフィールドには、ジオコード結果候補の追加情報が含まれています。 たとえば、ある消火栓がどの国勢調査区または消防管区に関連付けられているか知りたい場合、消火栓 ID をジオコーディングし、国勢調査区や消防管区の属性をジオコーディングの結果に空間的に結合します。 追加情報を持つレイヤーの属性を、ロケーターの構築に使用した参照データに空間結合することで、ロケーターを構築する際にユーザー定義されたカスタム出力フィールドとして結合フィールドを指定できます。 ジオコード結果には、追加のカスタム出力フィールドとその値が含まれます。

  • このツールの出力は [コンポジット住所ロケーターの作成 (Create Composite Address Locator)] ツールへの入力として使用できます。 ただし、コンポジット ロケーターで、このツールで作成したロケーターを他の住所ロール ベースのロケーターと組み合わせる際には、注意して処理する必要があります。なぜなら、[名前] フィーチャ ロケーター ロール フィールドのフィールド マッピングによって、予期しない動作が発生する可能性があるためです。 「POI」ロールに基づいて [ロケーターの作成 (Create Locator)] ツールで作成したロケーターを使用することをお勧めします。

  • 正確な Python 構文を生成するには、まず、[ジオプロセシング] ウィンドウで適切なパラメーター オプションを使用してツールを実行します。 次に、[実行] メニューを開いて [Python コマンドのコピー] オプションを選択します。

  • Z 対応ポイント フィーチャクラスをプライマリ参照データとして使用して、ロケーターを構築できます。 ジオコード結果がマップ内の想定される高度に表示されるよう、Z 対応フィーチャを絶対高度で作成する必要があります。

パラメーター

ラベル説明データ タイプ
入力フィーチャ

ロケーターを作成するために使用される参照データのフィーチャクラスまたはフィーチャ レイヤー。

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

注意:

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

注意:

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

Feature Layer
検索フィールド

参照データ フィールドを [入力フィーチャ] パラメーター値内で検索に使用されるフィールドにマッピングします。 名前の横にアスタリスク (*) の付いたフィールドは必須です。 選択したフィールドにはインデックスが付けられ、検索に使用されます。

Field Info
出力ロケーター

ファイル フォルダーに作成される出力ロケーター ファイル。 ロケーターが作成されると、追加のプロパティとオプションをロケーターの設定で変更できます。

Address Locator
追加のロケーター フィールド
(オプション)

データ内に範囲とランクが存在する場合に、それらの追加フィールドをマッピングします。 Rank フィールドは、同じ名前とスコアを持つあいまいなクエリの結果や候補を並べ替えるために使用されます。 範囲フィールドは、ジオコーディング結果を表示するマップ範囲の設定に役立ちます。

Field Info
カスタム出力フィールド
(オプション)

ロケーターにユーザー定義の出力フィールドを追加します。 このパラメーターに指定する値により、ジオコード結果から返されるカスタム出力フィールドの名前が定義されますが、新しいフィールドは参照データ内のフィールドにそれぞれマッピングする必要があります。 ロケーターでサポートされるフィールドの最大数は 50 です。

ジオコード結果で使用するためにロケーターにカスタム出力フィールドを追加するには、次の手順を実行します。

  • カスタム出力フィールドの名前を入力します。 カスタム出力フィールド名がフィールド マッピングに追加されます。
  • 参照データ内で、ジオコード出力に含まれる追加の値を含むフィールドを選択します。
String

arcpy.geocoding.CreateFeatureLocator(in_features, search_fields, output_locator, {locator_fields}, {custom_output_fields})
名前説明データ タイプ
in_features

ロケーターを作成するために使用される参照データのフィーチャクラスまたはフィーチャ レイヤー。

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

注意:

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

注意:

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

Feature Layer
search_fields

参照データ フィールドを in_features パラメーター値内で検索に使用されるフィールドにマッピングします。 search_fields マッピングは次の形式で行われます。ここで、<locator field name> はロケーター ロールによってサポートされるフィールドの名前、<data field name>in_features パラメーター内で検索に使用されるフィールド名です。

# <locator field name> <data field name>

# This shows an example:
reference_data_field_map = """
"'Name' AssetName"
"""

選択したフィールドにはインデックスが付けられ、検索に使用されます。 in_features パラメーター内の参照データに対する関連フィールドをマッピングします。

Field Info
output_locator

ファイル フォルダーに作成される出力ロケーター ファイル。 ロケーターが作成されると、追加のプロパティとオプションをロケーターの設定で変更できます。

Address Locator
locator_fields
(オプション)

データ内に「範囲」と「ランク」が存在する場合に、それらの追加フィールドをマッピングします。 Rank フィールドは、同じ名前とスコアを持つあいまいなクエリの結果や候補を並べ替えるために使用されます。 範囲フィールドは、「ジオコーディング結果を表示」するマップ範囲の設定に役立ちます。 locator_fields のマッピングは、次の形式で行われます。

# <additional locator field name> <additional data field name>

# This shows an example:
additional_fields_map = """
"'Rank' RANK;'Min X' Xmin;
'Max X' Xmax;'Min Y' Ymin;
'Max Y' Ymax"
"""

<additional locator field name> フィールドはロケーターによってサポートされる追加フィールドの名前を表します。また、<additional data field name> フィールドは in_features パラメーターのフィールド名を表します。 in_features パラメーター内の参照データに対する関連フィールドをマッピングします。

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

ロケーターにユーザー定義の出力フィールドを追加します。 このパラメーターに指定する値により、ジオコード結果から返されるカスタム出力フィールドの名前が定義されますが、新しいフィールドは参照データ内のフィールドにそれぞれマッピングする必要があります。 ロケーターでサポートされるフィールドの最大数は 50 です。

注意:

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

String

コードのサンプル

CreateFeatureLocator の例 1 (スタンドアロン スクリプト)

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

# Description: Create a feature locator using local data.

# Import system modules
import arcpy

# Set local variables
in_features = r"C:\data\arizona.gdb\az_points"
search_field = "*Name NAME VISIBLE NONE"
output_locator = r"C:\output\locators\az_points_locator"
locator_fields = "Rank <None> VISIBLE NONE;'Min X' <None> VISIBLE NONE;'Max X' <None> VISIBLE NONE;'Min Y' <None> VISIBLE NONE;'Max Y' <None> VISIBLE NONE"

# Run CreateFeatureLocator
arcpy.geocoding.CreateFeatureLocator(in_features, search_field, output_locator, 
                                     locator_fields)
CreateFeatureLocator の例 2 (スタンドアロン スクリプト)

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

# Description: Create a feature locator using data from a hosted feature service in ArcGIS Online.

# Import system modules
import arcpy

# Sign in to Portal
arcpy.SignInToPortal("https://www.arcgis.com", "<username>", "<password>")

# Set local variables
in_features = "https://services.arcgis.com/<layer_id>/arcgis/rest/services/<service_name>/FeatureServer/<layer_number>"
search_field = "*Name NAME VISIBLE NONE"
output_locator = r"C:\output\locators\service_locator"
locator_fields = "Rank <None> VISIBLE NONE;'Min X' <None> VISIBLE NONE;'Max X' <None> VISIBLE NONE;'Min Y' <None> VISIBLE NONE;'Max Y' <None> VISIBLE NONE"

arcpy.geocoding.CreateFeatureLocator(in_features, search_field, output_locator, 
                                     locator_fields)