arcpy.geocoding.CreateLocator(country_code, primary_reference_data, field_mapping, out_locator, language_code, {alternatename_tables}, {alternate_field_mapping}, {custom_output_fields}, {precision_type}, {version_compatibility})
|
名前
|
説明
|
データ タイプ
|
|
country_code
|
どの国に固有のジオコーディング ロジックをロケーターの参照データに適用するのかを指定します。
これは AS_DEFINED_IN_DATA を使用して指定でき、field_mapping の primary_reference_data から値をマッピングできます。または、USA (米国)、CAN (カナダ)、PRI (プエルトリコ) などの 3 文字の国コード名を指定することでデータセット全体に適用できます。
作成するロケーターの指定された国に対する field_mapping パラメーターで使用するために提供される予想フィールド名を含む国のテンプレートを提供します。
|
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 の ロケーターの作成 ツールを開いてロケーター ロールを選択します。 フィールド マップ パラメーターの フィールド名 列に表示される名前が、フィールドのロールのフィールド名です。
注意:
代替名テーブルを使用する場合は、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_DATA を language_code 値に設定し、field_mapping 内の primary_reference_data から値をマッピングします。または、住所の言語を表す 3 文字の言語コード値 (ENG (英語) など) を使用して言語を指定することで、データセット全体に適用できます。
|
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 内のテーブルごとに関連フィールドをマッピングします。
次に、alternatename_tables の alternate_field_mapping の例を示します。
# <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 が追加されます。 ロケーターでサポートされるフィールドの最大数は 50 です。
参照データ内のフィールドにデータが含まれていない場合、カスタム出力フィールドはロケーターによって返されず、 ロケーターのプロパティ ダイアログ ボックスの 出力フィールド タブにリストされません。
注意:
最初に 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
|
|
version_compatibility
(オプション)
|
作成されるロケーターのバージョンを指定します。 バージョンを指定すると、ロケーターを ArcGIS の以前のバージョンで使用できるようになり、後方互換性がサポートされます。
CURRENT_VERSION—ロケーターは、最新バージョンの ArcGIS Pro リリースと互換性を持ちます。 パラメーターのオプションとして選択可能な以前のバージョンとの互換性はありません。 たとえば、CURRENT_VERSION が選択され、その他のオプションが V3_0_TO_3_3 である場合、作成されたロケーターは ArcGIS Pro 3.4 以降のバージョンと ArcGIS Enterprise 11.4 以降のバージョンでのみサポートされます。
V3_0_TO_3_3—ロケーターは、ArcGIS Pro バージョン 3.0 ~ 3.3 と互換性があります。
|
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"
# Run CreateLocator
arcpy.geocoding.CreateLocator("AS_DEFINED_IN_DATA", primary_reference_data, field_mapping,
out_locator, "AS_DEFINED_IN_DATA")
CreateLocator の例 2 (スタンドアロン スクリプト)
次の Python スクリプトは、スタンドアロン スクリプトで CreateLocator 関数を使用する方法を示しています。
# Description: Create a POI locator using a shapefile that contains points
# of interest for airport locations as reference data. The new
# locator will be created in a file folder.
# Import system modules
import arcpy
# Set local variables:
country_code="USA"
primary_reference_data=r"C:\Data\airports.shp POI"
field_mapping=["POI.PLACE_NAME 'airports.shp'.name",\
"POI.CATEGORY 'airports.shp'.type",\
"POI.REGION 'airports.shp'.iso_region",\
"POI.ZONE 'airports.shp'.iso_country"]
out_locator=r"C:\Data\Airports_Locator"
language_code="ENG"
# Run CreateLocator
arcpy.geocoding.CreateLocator(country_code, primary_reference_data, field_mapping,
out_locator, language_code)
CreateLocator 例 3 (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"
# Run CreateLocator
arcpy.geocoding.CreateLocator(country_code, primary_reference_data, field_mapping,
language_code, None, None, "CustomField1;CustomField2")
CreateLocator 例 4 (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"
# Run CreateLocator
arcpy.geocoding.CreateLocator("USA", primary_reference_data, field_mapping,
out_locator, "ENG", alternatename_tables,
alternate_field_mapping)
CreateLocator 例 5 (スタンドアロン スクリプト)
次の Python スクリプトは、イミディエイト モードで CreateLocator 関数を使用する方法を示しています。
# Description: Create a multirole 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"
# Run CreateLocator
arcpy.geocoding.CreateLocator(country, in_table, field_mapping, out_locator, language)