ThinkGeo.com    |     Blog    |     Wiki    |     Support

Narrowing Search Results like Zipcode search does

In my demo app I have the ability to search by both Street, City, State or Street, Zipcode.  It is based on whether the Zipcode is blank.



I understand there is a difference between the two types of Match functions.  With the zipcode I get one result for this address.  Without the zipcode I get three however the information is certainly there for it to narrow the result.



My questions are:

1) What is the reason that Match(address, city, state) doesn’t narrow the search to the single record.  Why was it coded this way?

2) If I wanted to simulate this narrowing for Non Zipcode addresses how can I do that.  What is your logic?  Does it check to see if HOUSENUMBER is BETWEEN (FROMADDRESSLEFT and TOADDRESSLEFT) and HOUSENUMBER is BETWEEN (FROMADDRESSRIGHT and TOADDRESSRIGHT)?



It would be great if Match had a narrowing flag that we could turn on to have this handled internally.  In our case we know most of the customer information has been verified and is accurate although it may not actually be in tiger in some cases.





Hi Dave,



For #1, we also noticed this difference and this is the part what we were improving in but still be in experiment. The difference reason is with the zipcode, the searching will run into other branch which will improve the result accuracy. 



Currently, I have a workaround: we can search out the possible zip codes by the city and state name from the zip.dbf included in the geocoder dataset. Then we loop to add the possible zip codes with the Street,Zipcode method to geocoding.  I attached a class to search value from a dbf file and hope it helps. I will help you implement this if you have any questions on it.



For #2, That’s right, the house number should be between (FROMADDRESSLEFT and TOADDRESSLEFT)  or (FROMADDRESSRIGHT and TOADDRESSRIGHT), if not, then we should drop it from the matched results.



Thanks,



Troy

001_DbfManager.cs.txt (4.03 KB)