well, after doing a round of demos on atlas and having to work with the virtual earth map stuff (argh), i decided that geocoding sucked and i’m surprised it isn’t a base offering in more apis. i guess i don’t understand why, when maps, etc. are being handed out like candy, but a simple method/api/whatever to provide the address and get the lat/long back isn’t — after all, the maps are doing it anyway.
at any rate, i found a few providers, the free one of which seems to be running off of a sixth graders pda…and can only handle about 1/2 simultaneous request. i started using it though with my demos for being short on time (easy interface to use). i then rethought that idea and decided a pluggable model would be better.
alas, GeoCodeProvider is born. in crude form right now, it seemed to work on my known tests ;-). i’ve created a space for it on gotdotnet to give my man korby some props.
i’ve also included a YahooGeoCodeProvider as an initial provider. the zip is an asp.net 2.0 application using atlas to demonstrate mapping the northwind (US) customers to a virtual earth map.
check it out: download GeoCodeProvider sample. i’ll soon be adding a mappoint/msn provider when i get around to it.
basically, all you need to do is add the the binaries as references:
then in your web.config, add the config section:
1 <sectionGroup name="system.web">
2 <section name="geoCodeService" type="SmilingGoat.Providers.GeoCodeProviderConfigSection, GeoCodeProvider"
then in web.config, set the provider:
2 <geoCodeService defaultProvider="YahooGeoCodeProvider">
4 <add name="YahooGeoCodeProvider" type="SmilingGoat.Providers.YahooGeoCodeProvider"
once you do that, you are good to go, simply pass the provider service api a street address, city, state, zip (sorry us only) and get back coordinates. the sample site maps them on an atlas ve map: