Create Composite Address Locator (Geocoding)

Summary

Creates a composite address locator. A composite locator consists of two or more individual locators that allow addresses to be matched using the multiple locators.

Learn more about composite locators

Usage

  • Prior to creating composite address locators, use the Create Locator tool to create participating address locators.

  • Spatial reference for a composite address locator is required. The spatial reference of the first participating address locator is used unless you specify a different output coordinate system in the tool's environment settings.

Parameters

LabelExplanationData Type
Address Locators

The locators that will be used to create the composite locator. The order of the participating locators determines how candidates are searched and a place or address is matched. When you geocode a single place or address, the place or address will be matched against all participating locators unless the locator is specified with a selection criterion. All the found candidates will be displayed based on the order of the listed participating locators. If you geocode a table of addresses or places, addresses or places are matched automatically to the first best candidate found from the first participating locators. If the address or place fails to match, it will fall back to the subsequent locator in the list.

A reference name for each participating locator is required. This is the name of the locator referred to by the composite locator. Do not use spaces or special symbols in the name. The maximum length of the name is 14 characters.

Value Table
Field Map

The mapping of input fields used by each participating locator to the input fields of the composite locator.

The fields and field contents that are generated by the participating locators. Each of the unique input fields is listed in the Field Map section. When you expand the section, a list of all the input field occurrences (subfields) for each participating address locator is shown. These fields are the input fields for the composite address locator. If there are duplicate fields such as ZIP and Postcode because of the unique names populated from the participating address locators, you can group the subfields by dragging them to the appropriate field or use the Arrow Up or Arrow Down button to move the subfield.

Field Mappings
Selection criteria
(Optional)

Selection criteria for each participating locator. Only one selection criterion is supported for each participating locator.

When building a composite address locator, you can specify which address locators are used based on the values of input address fields. For example, if the composite address locator uses a locator that contains street data for a specific city, you can filter out any addresses or places that do not have that city name. Using selection criteria will disqualify participating address locators that do not meet the criteria for a particular address so that the geocoding process will be more efficient. For instance, if a street address locator is specified with a selection criterion as "City" = 'Atlanta', only addresses that contain the city name Atlanta will be geocoded using this locator.

To specify a selection criterion, check the locator check box under the Selection Criteria column that you want to apply the criterion to. You can enter an expression such as "City" = 'Atlanta' in the text box or click the more button to open the Specify Locator Selection Criteria dialog box and define the criteria.

Value Table
Output Composite Address Locator

The composite address locator that will be created. ArcGIS Pro only supports saving locators in a file folder.

Address Locator

arcpy.geocoding.CreateCompositeAddressLocator(in_address_locators, in_field_map, {in_selection_criteria}, out_composite_address_locator)
NameExplanationData Type
in_address_locators
[[in_address_locator, name],...]

The locators that will be used to create the composite locator. The order of the participating locators determines how candidates are searched and a place or address is matched. When you geocode a single place or address, the place or address will be matched against all participating locators unless the locator is specified with a selection criterion. All the found candidates will be displayed based on the order of the listed participating locators. If you geocode a table of addresses or places, addresses or places are matched automatically to the first best candidate found from the first participating locators. If the address or place fails to match, it will fall back to the subsequent locator in the list.

A reference name for each participating locator is required. This is the name of the locator referred to by the composite locator. Do not use spaces or special symbols in the name. The maximum length of the name is 14 characters.

Value Table
in_field_map

The mapping of input fields used by each participating locator to the input fields of the composite address locator.

For each locator input field, the field information should be formatted as in this sample string: "Address 'Address or Intersection' true true false 4 Text 0 0 ,First,'#',Street". The information in this string is composed of the following:

  • New field name (Address)—The new locator field name for the composite locator.

    One locator in the composite may have an Address field and the other locator may have a Street Address field. You can designate the new composite locator field as Address, which references both original locator fields.

  • Alias for the new field name ('Address or Intersection')—The new locator field name alias for the composite locator.

    For a composite locator with the new field name Address, you can designate an alias of 'Address or Intersection' for the field.

  • isEditable (true)—Specifies whether the new composite locator field is editable. The options are true or false.
  • Allow NULL Values (true)—Specifies whether the new composite locator field allows null values. The options are true or false.
  • Required (false)—Specifies whether the new composite locator field is a required field. The options are true or false.
  • Length (4)—The length of the new composite locator field.
  • Type (Text)—The data type of the new composite locator field. This value should always be Text for a locator.
  • Scale (0)—The scale of the new composite locator field. Any value between 1 and 100 can be used. This value does not apply to locators, but a valid value must be used.
  • Precision (0)—The precision of the new composite locator field. Any value between 1 and 100 can be used. This value does not apply to locators, but a valid value must be used.
  • Merge rule (First)—The merge rule for the new composite locator field. Any merge rule value can be used. This value does not apply to locators, but a valid value must be used.
  • Delimiter ('#')—The delimiter for the new composite locator field. Any supported delimiter can be used.
  • Original locator field name (Street)—The locator field name in the original participating locator.
Field Mappings
in_selection_criteria
[[in_address_locator, selection_criteria],...]
(Optional)

Selection criteria for each participating locator. Only one selection criterion is supported for each participating address locator.

Using selection criteria will disqualify participating address locators that do not meet the criteria for a particular address or place so that the geocoding process will be more efficient. See Fundamentals of combining multiple locators into a composite locator to learn more about the use of selection criteria in the geocoding process.

Value Table
out_composite_address_locator

The composite address locator that will be created. ArcGIS Pro only supports saving locators in a file folder.

Address Locator

Code sample

CreateCompositeAddressLocator example (Python window)

The following Python window script demonstrates how to use the CreateCompositeAddressLocator function in immediate mode.

# Create a composite address locator using the StreetMap US Streets and Tutorial Atlanta locators.

# Import system modules
import arcpy 

arcpy.env.workspace = "C:/ArcTutor/Geocoding/atlanta/"

# Set local variables:
US_Streets_locator = "C:/dm_stmap_dvd/streetmap_na/data/Street_Addresses_US"
Atlanta_locator = Atlanta
Atlanta_Composite = US_Atlanta_Composite

#Field mapping
address_field_map = "Address 'Street or Intersection' true true false 100 Text 0 0 ,First,#,Atlanta_locator,Address,0,0,US_Streets_locator,Street;"
city_field_map = "City 'City or Placename' true true false 40 Text 0 0 ,First,#,Atlanta_locator,City,0,0,US_Streets_locator,City;"
state_field_map = "State 'State' true true false 20 Text 0 0 ,First,#,Atlanta_locator,State,0,0,US_Streets_locator,State;"
zip_field_map = "Zip 'Zipcode' true true false 10 Text 0 0 ,First,#,Atlanta_locator,Zip,0,0,US_Streets_locator,ZIP"

composite_locator_field_map = address_field_map + city_field_map + state_field_map + zip_field_map

arcpy.geocoding.CreateCompositeAddressLocator("Atlanta_locator Atlanta;US_Streets_locator US_Streets", composite_loactor_field_map,"Atlanta '\"City\" = 'Atlanta'';US_Streets #",Atlanta_Composite)

Licensing information

  • Basic: Yes
  • Standard: Yes
  • Advanced: Yes

Related topics