Map Matching a GPX track to Overture maps by Android Java App Development

Job ID: 37583433

Budget: $750 – $1,500 USD

I'm seeking a proficient app developer to create an Android Java application focusing on Map Matching. Matching GPX tracks to Overture maps accurately and offline is the Core purpose of this application.

Key Features:
- Map Matching: The app should facilitate precise map matching (snap to road) of the input GPX track.
- Snap to Road Speed: It must be fast enough that Android phones can use live data from a moving vehicle updating the snapped road as it moves.
- Offline Maps: Since constant Internet connectivity cannot be guaranteed during navigation, the ability to successfully use offline maps is mandatory.
- Speed Limits: Speed limit info of each road must be downloaded and checked against the vehicle speed
- The Java code should be shared in a private Github project and properly documented.

Milestones:
15% If no map has been downloaded previously, select a country from a listbox with all countries/regions and download the Overture Maps Transportation schema theme for that country. Using only offline local data (downloaded), paint the map and the route with GPX trackpoints of the attachment. (Just an example the app should work with any input track provided)
https://overturemaps.org/download/
https://docs.overturemaps.org/themes/transportation/

40% Snap to road the route and paint the snapped road. Using only offline local data (downloaded) and using the Viterbi algorithm (similarly as used in the Graphhopper Map Matching code) snap the trackpoints to the most probable road and paint the snapped path with a different color than the input trackpoints.
https://github.com/graphhopper/graphhopper/blob/master/map-matching/README.md
https://github.com/graphhopper/graphhopper/tree/master/map-matching

10% Read the speedlimits from the local Overture data and repaint the snapped road in green when below the limit and in red when above the limit
https://docs.overturemaps.org/themes/transportation/roads#speed-limits

35% Modify the Map Matching algorithm code to improve its snapping to road speed when calling it repeatedly in a sliding window mode as the vehicle moves: adding some gpx points at the end of the input track and deleting the same number of points from the beginning of the track.

Ideal Skills and Experience:
The ideal freelancer would have extensive experience in Android app development with Java & Android Studio. Proficiency in snapping GPX tracking with Overture maps is critical for this project. GIS/Overture/OSM/Graphhopper/Viterbi knowledge required. Familiarity with offline map integration is also essential. Past work with navigation app development will be highly regarded.

LEGAL NOTICE: BY DOING THIS PROJECT YOU ARE AUTOMATICALLY GIVING AWAY FULL, EXCLUSIVE, WORLDWIDE RIGHTS TO THE EMPLOYER AND ALL ASSOCIATED SUBJECTS TO USE, MONETISE AND RESELL THE PROGRAM, LOGO, USER INTERFACE AND ALL ELSE THAT HAS BEEN MADE BY YOU. ALSO, YOU WILL NOT PUBLICLY REPRESENT YOURSELF AS A CREATOR OF THIS WORK USE IT IN YOUR PORTFOLIO, OR WITHIN ANY VERBAL OR WRITTEN COMMUNICATION.