Select to view content in your preferred language

Locator won't match close street number in single address locator

18222
77
11-26-2013 06:49 AM
PeterHanmore
Emerging Contributor
We have built a locator in ArcGIS 10 SP5 which is based on the US Street - Single Address style.
We have been able to tweak most other settings but are still having issues with street number scoring.
Basically, we would like the locator to rank similar house numbers on the same street/town with a high score.
The default action (from my testing and based on one other forum thread) seems to indicate that the locator is VERY strict about the house number matching - to the point that it will give a high ranking to an address that matches the house number and street in a town hundreds of miles away, but fail to even score the address 100' away.
We have tried playing with the scoring of the FullNormalAddress, NormalAddress and House components but nothing seems to allow addresses with close house numbers in the desired city to be ranked higher than exact house number matches in a different city.

For example:
Search for 100 Main Street, Mytown

Geocoder responds with:
Score: 90, Address: 100 Main Street, Yourtown (could be large distance away from Mytown and therefore totally wrong location).

Yet 98 Main Street, Mytown is only two house numbers away from the desired address.  I would like the locator to return something like:

Score: 98, Address: 98 Main Street, MyTown
Score: 50, Address: 100 Main Street, Yourtown

Has anyone found a solution for this?  Any workarounds?  Apparently this worked as desired in 9.3.1 but was "improved" in 10.0?
Tags (2)
77 Replies
BradNiemand
Esri Regular Contributor

Elizabeth,

Somehow I missed that.  What you should do instead is use the Standardize Addresses tool to break the input dataset (VernonCountyMO_Addresses.shp) single field address (StreetName) into its components and then build a Single House locator off of that data.

After that, you will have a Single House locator off of the new dataset.  You should then have "Street" and "City" as your input locator field names (the first name in the field mapping) and the second field in the field mapping would be the name of the field in your CSV file.

You will notice that the geocoding will be much better as well because the Single House locator style allows for missing components, misspelled words, and other flexibility that the Singe Field style does not because it is an exact match locator.  The single field locator style is really for assets or something that has a unique value.

I think the reason it is failing right now is because the Single Field locator only takes in a Single Field for input.

Brad

0 Kudos
ElizabethWare1
Emerging Contributor

Hey that worked!!! So is there a way I can get a count of the number of calls that were created? That is a parameter I am currently returning in my code.

I wondered if the address was the problem, but thought single field would work.

0 Kudos
BradNiemand
Esri Regular Contributor

Elizabeth,

I am not sure what you are asking for here:  "So is there a way I can get a count of the number of calls that were created?"

Do you want to know how many records are in the input CSV file or how many geocodes there are in the geocoded featureClass or something else?

Brad

0 Kudos
ElizabethWare1
Emerging Contributor

yeah I is basically the number of records from the CSV. So if 4 calls were in the CSV, then I would have geocoded 4 addresses. There doesn't seem to be a way to get the number of feature classes. But I did find some code that might help me out.

0 Kudos
JoeBorgione
MVP Emeritus

is there a way I can get a count of the number of calls that were created

Shouldn't that come from your CAD?

That should just about do it....
0 Kudos
ElizabethWare1
Emerging Contributor

This is basically telling me how many calls were geocoded. I will keep looking.

0 Kudos
BradNiemand
Esri Regular Contributor

Elizabeth,

That is pretty simple.  After the GP.Execute() code, just add the following:

IWorkspaceFactory2 workspaceFactory = new ShapefileWorkspaceFactoryClass() as IWorkspaceFactory2;
IWorkspace workspace = workspaceFactory.OpenFromFile(@"C:\geocoding", 0);

IFeatureClass featureClass = (workspace as IFeatureWorkspace).OpenFeatureClass(@"redlands_addr_geocoded");
ITable geocodedTable = featureClass as ITable;

IQueryFilter QF = new QueryFilterClass();
QF.WhereClause = "Status = 'M' OR Status = 'T'";
int numGeocodes = geocodedTable.RowCount(QF)

This will give you only the matched and tied geocoded records.  If you just want to get a total count of the records including unmatched records, just pass in null instead of QF to RowCount().

Brad

0 Kudos
ElizabethWare1
Emerging Contributor

That worked great!! Any idea why I might be getting this once in a while?

when trying to plot a call?

And when it does work, it seems to lock a file when it is added to the map not allowing the files to be deleted. I am assuming the layer would need to be removed first? Locking wasn't an issue in 9.3.

0 Kudos
BradNiemand
Esri Regular Contributor

Elizabeth,

You got me on this one.  I am not sure what that error means at all.  This is out of my area of expertise.

Brad

0 Kudos
JoeBorgione
MVP Emeritus

take a look at :  Table export with postfix clause failing with FGDB in 10.1 SP1 

                           Error: There was an error executing the query. An invalid SQL statement was used. [ ] 

                           use ShapefileWorkspaceFactory loop dbf file, how can get corresponding value with the max value of a... 

there are more when you google 'esri error the owner sid on a per user subscription doesn't exist'....

That should just about do it....
0 Kudos