3

I am trying to build a turn-by-turn navigation app like TomTom or Mapquest, and I am looking for some help in getting started, in the direction of available options and licensing (if any).

Technically, I think its fairly easy to plot the current location or address on map via Core Location. But I have some question more specific to routing.
- Is there a Google/or any other API for turn-by-turn directions?
- Technically, what is the best way to go about creating an app like that using available 3rd party/open source tools (maps, routes, POI, etc.)?
- What are the potential challenges or do's and dont's?

jscs
  • 63,694
  • 13
  • 151
  • 195
xoail
  • 2,978
  • 5
  • 36
  • 70

3 Answers3

3

As the lead engineer for the MapQuest app I can tell you from experience that there are plenty of challenges. MapQuest offers no iOS specific API though I had built the early beginnings of one. I can point you in the direction of RouteMe, an open source mapping API, that could give you a jump start. Otherwise you'd be stuck building an API over existing web services. You could also look into the MapKit APIs on iOS to get started. Secondly, there is the voice element which happens to be my favorite. You would need access to either a voice web service or you would want to incorporate something like on device TTS via Flite or the Open Ears project. My biggest challenge on MapQuest was getting smooth scrolling working. In retrospect I learned a ton about the UIScroll APIs that would have made MapQuest for iPhone a heck of a lot better but I no longer work for the company and can not change things.

Forgot the most important part. Regarding routing, I believe MapQuest has some very powerful routing APIs which seem to have made it in there more recent releases. These APIs give you side of street routing, and solid support for navigation. I'm not sure what the plan is currently but I understand their routing support only covers the US. With the heavy drive behind OSM I wouldn't be surprised if support was eventually expanded other countries.

Cliff
  • 10,586
  • 7
  • 61
  • 102
  • Thank you Cliff for your answer. I am looking into RouteMe and Open Ears to get started. I am planning to create a free app that does basic routing and turn-by-turn. Unfortunately I dont think mapquest supports my country of interest as of now. – xoail Nov 28 '11 at 19:14
  • what is your country of interest? – Cliff Nov 28 '11 at 23:33
  • Cliff, I dont see how I can contact u on your blog. – xoail Dec 05 '11 at 15:23
  • my apologies! My web address is in my profile. Just leave a comment anywhere on the site and I'll email you back. Most people use the "about me" page. – Cliff Dec 05 '11 at 22:43
2

The Google directions API might help you.

It has a number of limitations and restrictions in terms of usage; I suggest you read the page I linked.

Assuming it meets your needs, it is fairly easy to integrate with MapKit. I had success doing just that for an internal application.

TheNextman
  • 12,428
  • 2
  • 36
  • 75
  • Thanks! Any ideas on how to roll turn-by-turn with voice? The directions API is returning pretty cool direction list. I am wondering how can I take this and start plotting on the map and follow the dot (location) as it moves while speaking out the Text to speech? – xoail Nov 28 '11 at 20:30
  • My app was just a demo, not that advanced. I requested the directions from Google and parsed out the JSON into my own route/waypoint structure. I found some code online to plot the Google polylines on the map (lovely and smooth!). I had arrows in the nav bar to allow the user to tab back/forth between waypoints, and displayed the 'instructions' for that waypoint in an overview. Your requirements are obviously a bit tougher - never mind the voice integration, presumably you will need to monitor the user straying from the route and 'recalculate'? – TheNextman Nov 28 '11 at 20:36
  • @xoail: did you find a good solution to use API for turn by turn navigation? – knagode Jun 25 '13 at 08:49
  • @knagode I spent a lot of time working with Google APIs back then, but when Apple came out with their own Maps, my whole project fell through and I moved on to something else. I am still interested in learning more about the options. Have you come across something interesting in the space? – xoail Jun 25 '13 at 16:34
  • @xoail: We will most likely abandon idea of making turn by turn navigation - if not I will write it here ... The main problem with us is that we would need to recalculate the directions if someone goes off-road .. I also believe that Apple will add some restriction about using of their iOS7 direction service - similar like Google did ... – knagode Jun 30 '13 at 20:23
0

You could also look into openrouteservice.org for routing in specific countries. While MapQuest doesn't currently support routing in other countries they have thrown their full weight behind OSM initiatives. I wouldn't be surprised if they are planning to roll something out soon in different countries. I'm not strong in routing but I could definitely give you guidance on the TTS work. Also, I know some gurus on the routing front that I could ping for answers. Depending on your ambition and the scale of your app you might do well to invest in client server based TTS. I've had really good experience with OpenMary (100% Java based TTS) in the past and it also supports different languages.

Cliff
  • 10,586
  • 7
  • 61
  • 102