Geocode service StandardizeAddress method
Standardizes an address using rules defined within the geocode service.
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.
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());
}