Geocode service GetLocatorProperties method

Gets the default properties of a geocode service (locator). This is often used to modify characteristics of a geocode operation.

GetLocatorProperties()

Return Value

A PropertySet containing properties and values. Individual properties can be modified and the object can be used in a geocode operation associated with the following methods: FindAddressCandidates, GeocodeAddress, GeocodeAddresses, ReverseGeocode and StandardizeAddress.

Remarks

A locator is the source file for a geocode service configuration. It contains information on how an address is standardized, the search methods used for address matches, and the type of information that is returned when there is a match. Many of the locator properties can be modified for each geocode request and are specified as an input parameter (e.g. the PropMods argument).

Property name

Type

Description

MinimumCandidateScore

integer

When a geocode service searches for likely candidates in the reference data, it uses this threshold to filter the results presented. Locations that yield a score lower than this threshold are not presented.

The minimum candidate score for a locator is a value between 0 and 100. By default, this is set to 30. If a geocode service is unable to find any likely candidates for an address that you want to geocode, you can lower this setting so candidates with lower scores are presented.

SideOffsetUnits

Unit

The reference unit in which to specify the side offset (SideOffset property).

SpellingSensitivity

integer

Spelling sensitivity determines how much variation a geocode service will allow when it searches for likely candidates in the reference data. A low value for spelling sensitivity will allow "Mane", "Maine", and "Man" to be treated as match candidates for "r;Main". A higher value will restrict candidates to exact matches. The spelling sensitivity does not affect the match score of each candidate; it only controls how many candidates the service considers. The geocode service computes the match score of each candidate and ranks the candidates by score.

The spelling sensitivity setting for an address locator is a value between 0 and 100. By default, the spelling sensitivity is 80, which allows for only minor variations in spelling. If you are sure your addresses are spelled correctly, you can set a higher spelling sensitivity. If you think your addresses may contain spelling errors, you should use a lower setting. The geocoding process takes longer when you use a lower setting because the service has to process and compute scores for more candidates.

MinimumMatchScore

integer

The minimum match score setting controls how closely addresses have to match their most likely candidate in the reference data to be considered a match for the address. A perfect match yields a score of 100. A match score between 80 and 99 can generally be considered a good match. An address below the minimum match score is considered to have no match.

The minimum match score for a locator is a value between 0 and 100. By default, this setting is 60. If your application demands that addresses be located with a high level of confidence, you should set a higher minimum match score. If you want to maximize the number of addresses that can be matched and don't mind if some addresses are potentially matched incorrectly, you can use a lower setting.

When batch geocoding (see the GeocodeAddresses method), the minimum match score must be met or exceeded to be considered a match. If more than one match is found, the candidate with the highest match score is assigned.

EndOffset

integer

Geocode services that use reference data with line geometry, such as those based on the US Streets styles, can interpolate a position along reference features for a geocoded address. To prevent features that are located at the end of a reference feature from falling on top of other features (for example, a cross street), the locator can apply a squeeze factor, or end offset, to the location of a geocoded address. The end offset setting of a locator is expressed as a percentage of the length of the reference feature, between 0 and 50 percent. An end offset setting of 0 percent will not offset features from the end of the reference feature. An end offset of 50 percent will locate all features at the middle of the reference feature. By default, the end offset setting for an address locator is 3 percent.

In the illustration below, the address, 100 Main St. has been offset from the street feature by the side offset distance of 25 feet. This address falls at the end of the street feature and is, therefore, in line with the end of the street feature.

address offset 25 feet from street

When streets intersect at odd angles, specifying an offset distance can have the undesirable effect of placing the address so it appears that the address does not belong to Main St. but rather to Oak Ave. This is shown in the illustration below.

negative effects of address offset

An end offset can be used to adjust the location of the address toward the center of the street feature. Using an end offset will often rectify the condition shown in the previous diagram. In this example, a squeeze factor of 10 percent was used to move the address toward the center of the street feature by a distance equal to 10 percent of the length of the feature.

using end offset to rectify address misplacement

IntersectionConnectors

string

Geocode services that are based on US Streets locator styles can geocode street intersections in addition to street addresses. Intersections are designated as two streets delimited by an intersection connector string. Some examples of intersection address are "Hollywood Blvd. & Vine St." and "Yonge St. | Bloor St."

The intersection connectors setting lets you specify all the strings that the geocode service will recognize as intersection connectors. By default, the symbols &, |, and @ are recognized as intersection connectors. You can add additional symbols or words to indicate intersection connectors.

Symbols or words listed as intersection connectors will be used exclusively for intersection addresses. For example, "123 A and B St" will always be considered as an intersection address if "AND" is added as an intersection connector.

OutputSpatialReference*

SpatialReference

Every geocode service uses the spatial reference of its reference data and returns match locations in this spatial reference. You can use this property to define the spatial reference of (reproject) the geocoded point returned from an address match operation.

SearchExtent*

Envelope

The geographic extent which should be used to restrict the search for the request. Setting this property will restrict the geocoding operation to find only the features within this extent.

SideOffset

integer

Geocode services can use reference data containing address range information for each side of the street, such as US Street address styles. Locators based on these styles can determine which side of the street an address is located. For cartographic purposes, you can specify a side offset for geocoded features when using these styles of locators. When you specify a side offset, the geocode service locates geocoded features at the specified distance, based on map units, from the street centerline on the correct side of the street.

SuggestedBatchSize

integer

The number of addresses to locate during a single request to a geocode service using the GeocodeAddresses method. This is merely a performance recommendation, not a hard limit. The default maximum batch size is 500.

WriteXYCoordFields

boolean

Use this setting to create attributes in geocode results that contain the x,y coordinates of the geocoded features. When true, the geocode service will create two attribute fields in the results, one for the x-coordinate and one for the y-coordinate. These attributes are not valid for an address if the address is not matched.

WriteStandardizedAddressField

boolean

Applies only to pre-ArcGIS 10 locators only:

This setting allows you to create an attribute in geocode results which contains the standardized address. The contents of this field for each address are the address components used by the geocode service, separated by the pipe (|) character. This attribute is useful for displaying how the service standardized the addresses.

WriteReferenceIDField

boolean

Use this setting to create an attribute in a geocode results which contains the ID of the reference feature to which an address was matched. This attribute is not valid for an address if the address is not matched.

WritePercentAlongField

boolean

Geocode services that are based on US Streets locator styles can interpolate a position along the reference feature for a geocoded address. Use this setting to create an attribute in a geocode results which contains the position along the reference feature to which the address was matched. The value of this attribute is a number between 0 and 100, with 0 indicating the starting node of the reference feature and 100 indicating the ending node of the reference feature. This attribute is not valid for an address if the address is not matched.

*Not included in the default location properties returned from the geocode service. As a result, it needs to be added to the locator property array (PropMods) passed to a geocode operation method (e.g. GeocodeAddress).

Examples

C#

GeocodeService_GeocodeServer geocodeservice = new GeocodeService_GeocodeServer();

geocodeservice.Url = "http://localhost:6080/arcgis/services/GeocodeService/GeocodeServer";

 

PropertySet locatorProperties = geocodeservice.GetLocatorProperties();

PropertySetProperty[] locatorArray = locatorProperties.PropertyArray;

 

// Display locator properties and default values

foreach (PropertySetProperty locatorProperty in locatorArray)

{

      System.Diagnostics.Debug.WriteLine(locatorProperty.Key.ToString());

      System.Diagnostics.Debug.WriteLine(locatorProperty.Value.ToString());

}

 

// Change locator property value

for (int index = 0; index < locatorArray.Length; index++)

{

      PropertySetProperty property = locatorArray[index];

      switch (property.Key)

      {

      case "MinimumMatchScore":

            property.Value = "50";

            break;

      case "MinimumCandidateScore":

            property.Value = "50";

            break;

      }

}

VB.NET

Dim geocodeservice As GeocodeService_GeocodeServer = New GeocodeService_GeocodeServer()

geocodeservice.Url = "http://localhost:6080/arcgis/services/GeocodeService/GeocodeServer"

 

Dim locatorProperties As PropertySet = geocodeservice.GetLocatorProperties()

Dim locatorArray() As PropertySetProperty = locatorProperties.PropertyArray

 

' Display locator properties and default values

Dim locatorProperty As PropertySetProperty

For Each locatorProperty In locatorArray

      System.Diagnostics.Debug.WriteLine(locatorProperty.Key.ToString())

      System.Diagnostics.Debug.WriteLine(locatorProperty.Value.ToString())

Next

 

' Change locator property value

Dim index As Integer

For index = 0 To locatorArray.Length - 1 Step index + 1

      Dim property1 As PropertySetProperty = locatorArray(index)

      Select Case property1.Key

            Case "MinimumMatchScore"

                  property1.Value = "50"

            Case "MinimumCandidateScore"

                  property1.Value = "50"

      End Select

Next

Java

String serviceURL = "http://localhost:6080/arcgis/services/GeocodeService/GeocodeServer";

GeocodeServerBindingStub geocodeService = new GeocodeServerBindingStub(serviceURL);
 

//Test GetLocatorProperties

PropertySet locatorProps = geocodeService.getLocatorProperties();

PropertySetProperty[] locatorArray = locatorProps.getPropertyArray();

Set<String> setOfLocatorProps = new HashSet<String>();

 

System.out.println("Locator Properties...");

 

for (PropertySetProperty locatorProperty : locatorArray) {

      System.out.println(locatorProperty.getKey() + ": " + locatorProperty.getValue());

      setOfLocatorProps.add(locatorProperty.getKey());

}

2/28/2020