Geocode service StandardizeAddress method

Standardizes an address using rules defined within the geocode service.

NoteNote:

This method is only supported on pre-ArcGIS 10 locators.

StandardizeAddress(PropertySet Address, PropertySet PropMods)

Parameter

Description

Address

Address information stored as a PropertySet to be standardized. Each property is associated with an address field defined for the geocoding service. Use GetAddressFields() to get a list of fields.

PropMods

Modifications to the geocode service properties. Use GetLocatorProperties() to get a list of default locator properties. Use GetLocatorProperties() to return default locator properties.

Return Value

A PropertySet containing property-values pairs defining how the input address was parsed (standardized).

Remarks

Standardization is a procedure that usually occurs before geocoding to prepare an input address for the match process. Use this method to check the standardization rules applied to an input address by the geocode service or to construct a PropertySet that represents a standardized address to pass to the GeocodeAddress() or FindAddressCandidates() methods.

The following diagram illustrates the geocode server proxy methods commonly used when working with the StandardizeAddress() method. In addition, the diagram also includes the input and output information one can expect when using this method.

Common geocode server StandardizeAddress proxy methods

The PropMods parameter is a PropertySet containing the geocode service properties to use to find candidates for the address. The GetLocatorProperties method returns the set of default geocoding properties for the geocode service. Since this method does not perform any matching, most of the locator properties will not apply. However, you may choose to modify some properties associated with address definition, such as intersection connector types.

The PropertySet returned by this method contains the standardized address. If the standardized address returned is a non-intersection address, then use the names of the fields returned by the GetStandardizedFields method to retrieve the components of the standardized address. If the standardized address returned is an intersection address, then use the names of the fields returned by the GetStandardizedIntersectionFields method to retrieve the components of the standardized address. In addition to the standardized address components, this PropertySet contains a property named "Addr_type" that indicates the type of address. If the value of this property is "A", then the address was standardized as a non-intersection address. If the value of this property is "I", then the address was standardized as an intersection address. The set of remaining properties will depend on the value of this property.

Examples

C#

GeocodeService_GeocodeServer geocodeservice = new GeocodeService_GeocodeServer();

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

 

// Define address inputs

PropertySet geocodePropSet = new PropertySet();

PropertySetProperty[] propArray = new PropertySetProperty[2];

 

PropertySetProperty geocodeProp = new PropertySetProperty();

geocodeProp.Key = "Street";

geocodeProp.Value = "5950 Magnolia Ave.";

propArray[0] = geocodeProp;

 

PropertySetProperty geocodeProp1 = new PropertySetProperty();

geocodeProp1.Key = "Zone";

geocodeProp1.Value = "92506";

propArray[1] = geocodeProp1;

 

geocodePropSet.PropertyArray = propArray;

 

PropertySet standardizedAddress = geocodeservice.StandardizeAddress(geocodePropSet, null);

PropertySetProperty[] standardArray = standardizedAddress.PropertyArray;

 

foreach (PropertySetProperty result in standardArray)

{

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

      System.Diagnostics.Debug.WriteLine(result.Value.ToString()); class=codesample>=

}

VB.NET

Dim geocodeservice As GeocodeService_GeocodeServer = New GeocodeService_GeocodeServer()

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

 

' Define address inputs

Dim geocodePropSet As PropertySet = New PropertySet()

Dim propArray(1) As PropertySetProperty

Dim geocodeProp As PropertySetProperty = New PropertySetProperty()

 

geocodeProp.Key = "Street"

geocodeProp.Value = "5950 Magnolia Ave."

propArray(0) = geocodeProp

 

Dim geocodeProp1 As PropertySetProperty = New PropertySetProperty()

geocodeProp1.Key = "Zone"

geocodeProp1.Value = "92506"

propArray(1) = geocodeProp1

 

geocodePropSet.PropertyArray = propArray

Dim standardizedAddress As PropertySet = geocodeservice.StandardizeAddress(geocodePropSet, Nothing)

Dim standardArray() As PropertySetProperty = standardizedAddress.PropertyArray

Dim result As PropertySetProperty

 

For Each result In standardArray

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

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

Next

Java

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

GeocodeServerBindingStub geocodeService = new GeocodeServerBindingStub(serviceURL);

 

//Create an address - This is specific to San Francisco

PropertySetProperty geocodeProp1 = new PropertySetProperty();

geocodeProp1.setKey("Street");

geocodeProp1.setValue("1 Main St.");

 

PropertySetProperty geocodeProp2 = new PropertySetProperty();

geocodeProp2.setKey("Zone");

geocodeProp2.setValue("94105");

 

PropertySetProperty[] propArray = new PropertySetProperty[2];

propArray[0] = geocodeProp1;

propArray[1] = geocodeProp2;

 

PropertySet geocodePropSet = new PropertySet();

geocodePropSet.setPropertyArray(propArray);

 

//StandardizeAddress

PropertySet standardizedAddress = geocodeService.standardizeAddress(geocodePropSet, null);

PropertySetProperty[] standardArray = standardizedAddress.getPropertyArray();

Map<String, String> mapOfStandardizedAddr = new HashMap<String, String>();

 

System.out.println("Standardized Address Properties..");

 

for (PropertySetProperty result : standardArray) {

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

      mapOfStandardizedAddr.put(result.getKey(), (String) result.getValue());

}

2/28/2020