Batch Geocoding with Garmin Mapsource

C++GeocodingGarmin

C++ Problem Overview


I lost track of this effort years ago but have need to geocode thousands of addresses nightly. I must use the very accurate database sitting on the machine, installed when the Nuvi map update installed Mapsource.

When I contacted Garmin years ago, they expressed an interest in providing an API for this, but then I heard nothing and did not follow up. Their database is provided by navtec? I believe. Anyone have experience with that format?

I posted on the Garmin Developer forum a while ago, but its a little lethargic over there :)

Has anyone done this? Does anyone know how it might be done without an API; meaning database structure and calls?

I'll take a solution in any language.


Added:

Garmin has expressed an interest in making this available to me. They just have not done it.

I do not know the database format.

I am NOT looking for an online solution or any other "alternative". This question is very specific.

C++ Solutions


Solution 1 - C++

Talk to Navtec directly. They will sell you or license you their database directly. The database tables are clearly documented, then write your own Geocoder on top. Took me about a week 4 years ago, and I was marginally profficient in SQL at the time.

Solution 2 - C++

You can geocode up to 10,000/day by city with NN4D after you get their free application key.

You can geocode for $18 per 1,000 with CoreLogic (aka Proxix)

Yahoo looked most promising because it has the Hadoop feature, which is also currently being utilized at Navteq. I've contacted a guy at Navteq who uses Hadoop, and I'm awaiting his feedback. According to Ben Lorica's article on Datameer O'Reilly.com entitled "Big Data Tool for Business Analysts", Datameer can upload from spreadsheets to Hadoop. Hadoop is a pipeline to Navteq.

Starting point - a list of the tools at the GIS Dept at USC

(I can only have one link because I'm new, but I'll add the rest when I get my points up.

Solution 3 - C++

naveteq uses oracle format

BUT HOLD 1 SECOND: doing 1000 lookups(per night) is easy, doing 10000 lookups(per night) requires a good server, doing 1000000 lookups(per night) requires a cluster

letting them do the searches requires less hardware(and more traffic) using xml-rpc or similar rpc would be the best( for everyone)

buy oracle db and start working

you can use almost anything BUT keeping in mind the volume you should use a compile language like c++

Solution 4 - C++

gpsbabel.org has lots of stuff on converting between lots of GPS formats, and a downloadable tool. My limited experience, mostly with google maps, streetview etc. is that geocoding is not very accurate. cM

Solution 5 - C++

The free IBM DB2 Express-C DBMS comes with Spatial Extender that can be used to GEOcode US addresses. See a webinar on this. Don't know if this is exact fit but it can't hurt to take a look.

Also take a quick look the DB2 documentation http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.spatial.topics.doc/doc/csbp3008.html

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMike TraderView Question on Stackoverflow
Solution 1 - C++JohnView Answer on Stackoverflow
Solution 2 - C++publicrelateView Answer on Stackoverflow
Solution 3 - C++borrelView Answer on Stackoverflow
Solution 4 - C++cactusmitchView Answer on Stackoverflow
Solution 5 - C++Leon KatsnelsonView Answer on Stackoverflow