ThinkGeo.com    |     Documentation    |     Premium Support

Geocoder match never returns a match

 


 



 var matchResult = geoCoder.Match("150 INFIRMARY WAY AMHERST MA 01003"); returns 13 results


 var matchResult1 = geoCoder.Match("150 INFIRMARY WAY", "AMHERST", "MA"); returns 6 results



 var matchResult2 = geoCoder.Match("150 INFIRMARY WAY", "01003"); returns 0 results


 


I dont understand why the third method never returns  a match. If it cant find the street in that Zip shouldnt it just return that Zip codes information?


I have tested the above code with various address combinations and  the overloaded  function that expects a zip never returns any results. Can you please tell us why this is the case?


 


Note: geoCoder is an object of UsaGeoCoder


 


 


 



 So I was going through the code again and noticed this, the function that i mentioned which did not return any results does return a  result when you remove the apartment/house no from the string. 


the resulting latlong is still far off from the point that is required, I have attached an image that shows the difference in the points when the house/apartment no is not mentioned.

 
the lat long that you can see in the search is the one which i got when i used the geocoder.Match(streetAdd,zip). In this case your generic function, the one that expects the entire search string gives the right lat long. but this might not be the case always. I'm jsut wondering which method i should be using and why?

2009-thinkgeo_diff.jpg (94.7 KB)

Anil, 
  
 Thanks for your post, 
  
 We have 3 Match overloads methods in the UsaGeocoder object, please see the definition below: 
  
 public Collection<GeocoderMatch> Match(string sourceText); 
 public Collection<GeocoderMatch> Match(string streetAddress, string zip); 
 public Collection<GeocoderMatch> Match(string streetAddress, string city, string state); 
  
 The first Match method includes 8 internal plugins, they are:  
  
 StreetMatchingPlugin, ZipDbfMatchingPlugin, CityDbfMatchingPlugin, CountyDbfMatchingPlugin, StateDbfMatchingPlugin, CensusTractsDbfMatchingPlugin, CensusBlockDbfMatchingPlugin, CensusBlockGroupMatchingPlugin. 
  
 When we search an entered address, it would pass these internal plugins one by one and add all searched results to the final result list to display.  
  
 The second and thrid overload methods just include the StreetMatchingPlugin to search, they just search the entered address for streets, not the other types. 
  
 So when you search the "150 INFIRMARY WAY AMHERST MA 01003" address used the first Match method, it returned 13 results, because we searched the input address according to the 8 internal plugins. Also the second and third Match method just return the results according to the StreetMatchingPlugin. 
  
 This is the search logic for our UsaGeocoder object above, if you still have any other questions please let me know, 
  
 Thanks, 
  
 Scott,