7

I am using the file: C:\Program Files\ArcGIS\Desktop10.0\Locators\US One Address.lot

To do address resolution on a parcel / polygon layer. I'm trying to understand why the file doesn't contain city, state or zip code fields. It only contains:

{ HouseNum, PreDir, PreType, StreetName, StreetType, SufDir }.  

MWrenn suggested I try the locator named "US One Address with Zone" and map city to zone. This technique works, but the results omit state and zip code. How can I get city, state, and zip code as a "US One Address" locator?

ArcEngine 10, C#, VS2010

Also posted here: http://forums.arcgis.com/threads/25632-Why-doesn-t-US-One-Address-locator-style-have-city-state-or-zip-code-fields?p=84515


Edit: Sean made the point that

"Having an address and ZIP code is sufficient to geocode the address"

which I don't take issue with, but maybe I didn't properly explain why I want City, State, Zip...

If the address is not found in the search and address candidates are found, I open a window which allows the user to select which address they want. Unsurprisingly, the client wants a regular looking address with house number street name, city, state, zip.

Here is how I fetch addresses:

IArray resultsArray = addressCandidates.FindAddressCandidates(addressProperties);
IFields candidateFields = addressCandidates.CandidateFields;

for (int candidateIndex = 0; candidateIndex < resultsArray.Count; candidateIndex++)
{
ClosestAddressResults thisResult = new ClosestAddressResults(); 
candidatePropertySet = resultsArray.get_Element(candidateIndex) as IPropertySet2;

List<string> dataAvailableToDisplay = new List<string>(); 
for (int fieldIndex = 0; fieldIndex < candidateFields.FieldCount; fieldIndex++)
{
  addressField = candidateFields.get_Field(fieldIndex);
  dataAvailableToDisplay.add(addressField.AliasName + " " + candidatePropertySet.GetProperty(addressField.Name)); 
}

The list looks like this:

Shape System.__ComObject
Score 66
HouseNum 104
PreDir 
PreType 
StreetName 1ST
StreetType ST
SufDir 
Zone 56441
Match_addr 104 1ST ST, 56441

In this case I mapped Zip to Zone. If I had mapped City to Zone, I would get the city name back. Because I am allowing the user to select an address in a window I want to display the addresses with all the data, but since only Zone comes back, I'm having a difficult time figuring out how to get it.

Right now my workaround is may City to Zone. Then for each address match, get the IPoint, for each IPoint, run it through a find closest address function, with Zone mapped to Zip, grab the Zip code, and concatenate the results. And of course I could do this for state too. The problem with my workaround even though technically it works, is that its pretty slow. So any ideas whatsoever are appreciated.

1
  • retagged w/ arcgis & arcengine Feb 4, 2011 at 0:43

4 Answers 4

3

If you have a mix of different address types, you might consider making a composite locator where each contained locator interprets Zone differently.

1
2

In order for a locator to be accurate, the address must be unique within a specified area. Addresses in the U.S. are not unique to a city or state. You can have more than one '100 Pine St' in a state, county or even city. The USPS does have a rule that addresses must be unique to a ZIP code.

Having an address and ZIP code is sufficient to geocode the address. City and state are useless for the reasons given above.

The One Address locator is for when you know that all of your addresses are unique to the data upon which the locator is built or you just don't care to restrict the search to anything more.

The purpose of the locator is to derive geometry (points) from attributes (address). When you run the locator, all of the original data is preserved. If your address data is missing city and or state you need to derive that separately by joining the geocoded results (the points) to the needed table/geography (city, state).

Keep in mind that, in the U.S., the city in the address is not necessarily the city in which the delivery point exists. Instead it is associated with the post office that serves that ZIP code. It can be problematic to derive the city portion from ZIP, you can have more than one 'city' name associated with a ZIP code/post office. The USPS charges for the information that associates city, state and ZIP.

Deriving a ZIP code is even harder. ZIP codes represent carrier routes and are not necessarily polygons. The USPS does not share ZIP geography freely. You can try using Census ZIP Code Tabulation Areas (ZCTA) which are derived from their address list. They are not 100% accurate and don't include point ZIP codes. The latest available is from the 2000 Census data. No release date has been provided for 2010 ZCTA data.

1

I've had a similar problem, and I just used US one address with zone, and used zip code as a zone. Maybe that will work for you, but I'd be interested to know why there is not an address locator with one address, city, state, or if one could be created.

You might also use the US ranges and set each from/to field to the same house number field and see if that works. I don't have a dataset in front of me to try it out.

1
  • Thanks for the tip -- I'm looking at it -- and still confused... Zipcode and City both map to the same field - Zone. So what if you have both? It can only search one I guess?
    – patrick
    Feb 4, 2011 at 15:32
0

Use the US Address—Dual Ranges address locator style. It looks like you were using an alternate name table.

1
  • Isn't dual ranges for streets? I am geocoding with a polygon layer. Also for some reason I don't have that locator in my directory
    – patrick
    Mar 11, 2011 at 16:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.