This is a project to write software that generate maps, routes, and geocoding from address data.
The data to be used is the OpenStreetMaps database (<[url removed, login to view]>)
The software stack to be used is OSMNavigation (<[url removed, login to view]>). This is written in Java, so this project probably needs to be in Java also.
The software will need to do the following:
* Import the dataset of the United States from OpenStreetMaps
* Take an input of an text address on the command line or a CSV file of many addresses, determine the latitude and longitude of that address, and return them on the command line or in a CSV file (this is also called geocoding)
- OSMNavigation provides a method to do this (<[url removed, login to view]>). This should probably be the primary method of geocoding, however it needs to support a certain level of fuzzy lookups (for example, if an address in Long Island is listed with the city "Long Islnd", it should still be able to find it - the same needs to be true of abbreviations in street names).
- There should also be fallback methods utilized for addresses that cannot be found using OSMNavigation. One example is the web service <[url removed, login to view]>. Online services such as mapquest could also be utilized, if possible.
* Take an input of a CSV file containing source and destination addresses or latitude/longitude locations, and provide routing, distance, and directional text.
- There are 3 different outputs that need to result from this operation.
- 1. For each pair of source + destination, output an image file that shows the map with the route superimposed. This should look similar to what Google Maps shows when you search for a route, for example: <[url removed, login to view]+Cobb+Galleria+Parkway,+Atlanta,+GA+30339+(Cobb+Energy+Performing+Arts+Centre)&daddr=2977+Cobb+Parkway,+Atlanta,+GA+30339-3148+(Hooters:+Cumberland)&hl=en&geocode=FQgIBQIdGUP3-iE4uodXYdiMMA%3BFbr4BAIdZT33-iF0TP6_wBY7Hw&mra=pd&mrcr=0&sll=[url removed, login to view],-84.459457&sspn=[url removed, login to view],0.01929&ie=UTF8&z=17>
- 2. For each pair of source + destination, output a text file that shows each driving step in the route. This is the desired format of the text file:
1. Head southeast (200 ft)
2. Turn right toward Cobb Galleria Pkwy/Professional Pkwy (210 ft)
3. Take the 1st left onto Cobb Galleria Pkwy/Professional Pkwy (0.2 mi)
4. Take the 1st right onto Riverwood Pkwy (0.2 mi)
5. Take the 1st right onto GA-3 N/US-41 N/Cobb Pkwy SE (0.1 mi)
- 3. A CSV file containing the contents of the input CSV file, plus an additional column that shows the driving distance between each pair of locations
The output should be configurable, in terms of what directories the text and image files are placed in, the size of the image files, the format of the image files (PNG, JPG), and the colors of elements in the maps.
The interface should be via command line.