【问题标题】:Creating Turn-Turn Navigation iPhone app创建转弯导航 iPhone 应用程序
【发布时间】:2011-11-28 17:22:17
【问题描述】:

我正在尝试构建像 TomTom 或 Mapquest 这样的逐向导航应用程序,并且我正在寻找一些入门帮助,包括可用选项和许可(如果有)的方向。

从技术上讲,我认为通过核心位置在地图上绘制当前位置或地址相当容易。但我有一些更具体的路由问题。
- 是否有 Google/或任何其他 API 用于转弯指示?
- 从技术上讲,使用可用的 3rd 方/开源工具(地图、路线、POI 等)创建这样的应用程序的最佳方法是什么?
- 有哪些潜在的挑战或该做什么和不该做什么?

【问题讨论】:

    标签: iphone objective-c ios navigation gps


    【解决方案1】:

    作为 MapQuest 应用程序的首席工程师,我可以根据经验告诉您,存在很多挑战。 MapQuest 没有提供特定于 iOS 的 API,尽管我已经构建了它的早期开始。我可以为您指明 RouteMe 的方向,这是一个开源地图 API,可以让您快速开始。否则,您将无法在现有 Web 服务上构建 API。您还可以查看 iOS 上的 MapKit API 以开始使用。其次,还有我最喜欢的声音元素。您将需要访问语音网络服务,或者您希望通过 Flite 或 Open Ears 项目在设备 TTS 上合并一些东西。我在 MapQuest 上最大的挑战是如何平滑滚动。回想起来,我学到了很多关于 UIScroll API 的知识,这些 API 会让 iPhone 版 MapQuest 好很多,但我不再为公司工作,也无法改变。

    忘记了最重要的部分。关于路由,我相信 MapQuest 有一些非常强大的路由 API,这些 API 似乎已经在最近的版本中实现了。这些 API 为您提供街道路线和可靠的导航支持。我不确定目前的计划是什么,但我知道他们的路由支持仅涵盖美国。在 OSM 背后的大力推动下,如果最终将支持扩展到其他国家/地区,我不会感到惊讶。

    【讨论】:

    • 感谢 Cliff 的回答。我正在研究 RouteMe 和 Open Ears 以开始使用。我计划创建一个免费的应用程序,它可以进行基本的路由和转弯。不幸的是,我认为 mapquest 目前不支持我感兴趣的国家/地区。
    • 您感兴趣的国家/地区是?
    • Cliff,我不知道如何在您的博客上与您联系。
    • 我很抱歉!我的网址在我的个人资料中。只需在网站上的任何地方发表评论,我会通过电子邮件回复您。大多数人使用“关于我”页面。
    【解决方案2】:

    Google 路线 API 可能会对您有所帮助。

    它在使用方面有很多限制和限制;我建议你阅读我链接的页面。

    假设它满足您的需求,与 MapKit 集成相当容易。我成功地为内部应用程序做到了这一点。

    【讨论】:

    • 谢谢!关于如何通过语音逐个滚动的任何想法?方向 API 返回非常酷的方向列表。我想知道如何才能开始在地图上绘制并跟随点(位置)移动,同时说出文本到语音?
    • 我的应用只是一个演示,没有那么先进。我向 Google 请求了方向,并将 JSON 解析为我自己的路线/航点结构。我在网上找到了一些代码来在地图上绘制谷歌折线(可爱而流畅!)。我在导航栏中有箭头,允许用户在航路点之间来回切换,并在概览中显示该航路点的“说明”。您的要求显然有点苛刻 - 更不用说语音集成,大概您需要监控偏离路线的用户并“重新计算”?
    • @xoail:你有没有找到一个好的解决方案来使用 API 进行转弯导航?
    • @knagode 那时我花了很多时间使用 Google API,但是当 Apple 推出自己的地图时,我的整个项目都失败了,我转向了其他事情。我仍然有兴趣了解有关选项的更多信息。你在这个领域遇到过什么有趣的事情吗?
    • @xoail:我们很可能会放弃转弯导航的想法——如果不是,我会写在这里......我们的主要问题是如果有人我们需要重新计算方向去越野..我也相信苹果会增加一些关于使用他们的 iOS7 指导服务的限制 - 就像谷歌所做的那样......
    【解决方案3】:

    您还可以查看 openrouteservice.org 以了解特定国家/地区的路由。虽然 MapQuest 目前不支持其他国家/地区的路由,但他们已全力支持 OSM 计划。如果他们计划很快在不同的国家推出一些东西,我不会感到惊讶。我不擅长路由,但我绝对可以为您提供有关 TTS 工作的指导。另外,我认识一些路由方面的专家,我可以 ping 寻求答案。根据您的野心和应用程序的规模,您可能会很好地投资于基于客户端服务器的 TTS。过去我对 OpenMary(100% 基于 Java 的 TTS)有过非常好的体验,它还支持不同的语言。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-28
      • 1970-01-01
      • 2014-07-25
      • 2014-08-23
      • 1970-01-01
      • 2015-09-11
      • 2015-12-08
      • 1970-01-01
      相关资源
      最近更新 更多