【问题标题】:Is it possible to create turn-by-turn GPS navigation app on Android/iOS using Google Maps?是否可以使用 Google 地图在 Android/iOS 上创建转弯 GPS 导航应用程序?
【发布时间】:2014-08-23 06:15:02
【问题描述】:

今天我和一个客户谈过,他想在Android上构建一个简单的导航APP!

基本上我们可以使用谷歌地图,放置一些“我们的”标记来显示一些位置(餐馆、酒店等)..我们还需要显示附近的用户朋友!

这一切都可以在 Android 上的 Google Maps API 中实现,除了我在自己的应用程序中找不到任何有关 Turn-by-turn 导航实现的有用信息(无需切换到 Google Maps 应用程序).​​.

有人能简单说明一下吗 - 是否可以在 Android 应用程序中使用 Google 地图来创建基于 GPS 的逐向导航应用程序?

谢谢

【问题讨论】:

  • 我一直致力于创建一个自定义导航应用程序,它的功能远远超出大多数人的想象。您应该研究融合的位置提供程序,并了解 Google Maps 和 Google Directions API 的工作原理。问题不在于获取方向和路线,而是跟踪您的坐标与路线。
  • 您的意思是设备上的 GPS 接收器和精度有问题吗?
  • 这只是一个难题。您所拥有的只是您的坐标和路线。您有责任处理其他所有事情。导航标记、预测移动、确定适当的 GPS ping 间隔......它变得有点笨重(这就是为什么你看不到很多完整的第三方导航应用程序的原因。

标签: android ios google-maps navigation gps


【解决方案1】:

我同意上述答案,但在 google maps API 隐私条款here 的第 10.4.c 节中也有一个关键条款。

说明

没有导航。您不会将服务或内容用于 (a) 实时导航或路线引导或与之相关;或 (b) 自动或自主车辆控制。

因此,我想继续回答您的问题并说不,不可能在不违反其隐私政策的情况下使用 Google Maps API 在 android 上创建逐步导航应用程序。

【讨论】:

  • @Nima 我也看过这个和一些替代方案,其中来自 Skobbler 的那个看起来最有趣。您可以从 developer.skobbler.com/support#download 下载他们的 SDK,它包括一个完整的演示项目和一个转弯方向的示例。
  • 诺基亚的 HERE 地图是我在不错的文档中找到的最佳替代方案之一,它们的使用成本有点​​高,但如果您希望对开发人员友好..那么您肯定应该选择它。他们提供对每个地图相关任务的每一端的控制。所以我建议你去。这里只有成本很重要
  • 那么优步是怎么做的呢?
  • Uber 这样做是因为 Uber 向谷歌地图服务支付了百万美元
  • @MehulThakkar HERE 地图在其服务条款中具有相同的开发者限制。另一位用户提到的 Skobbler SDK 似乎特别允许/鼓励创建转弯导航应用程序,但截至目前,他们目前不允许新开发人员在开发新 API 时进行注册。
【解决方案2】:

编辑:在使用此答案之前阅读下面的answer by Tushar

第一个选项

如果您想在应用中完全实现导航,则必须结合使用 Google Maps API 和 Google Directions API。它们可以免费使用,但您必须为 api 请求付费。(https://developers.google.com/maps/documentation/directions/)

第二个选项

我只需将您要导航的位置的纬度和经度发送到设备地图应用程序。这里有一些代码可以让你开始使用这种方法:

double lat = < latitude of the location you want to navigate to>

double lng = < longitude of the location you want to navigate to>     

String format = "geo:0,0?q=" + lat + "," + lng + "( Location title)";

Uri uri = Uri.parse(format); 


Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);

这将打开设备的地图应用并绘制位置,用户可以使用该应用做任何他们想做的事。

我会选择第二个选项,它很容易实现。

【讨论】:

  • 好的,但是 Google Directions API 是否包含逐向导航?像带有语音和箭头图像(左右掉头等)的 GoogleMaps 应用程序?
  • 不,它给你的只是一长串通往目的地的 LatLng 路点。您将拥有声音和箭头的设计以及您自己的东西。您还必须自己在地图上绘制航点。因此建议使用第二个选项。试一试,结果和你要找的很相似。
  • @mz87:试试诺基亚的 Here 地图,它们提供了您正在寻找的每一个东西
  • 我处于类似情况,Google Maps API 服务条款第 10.4 节 c iii 它说 - “无导航。您不会将服务或内容用于 (a) 实时导航或路线引导;或 (b) 自动或自主车辆控制。”我怀疑选项 2 应该是唯一合法的答案,因为您使用的是内置导航的设备,而不是“真正的”您的应用程序。不过,不完全确定我的解释是否正确。
  • 好的,我尝试了第二个选项,这也是处理导航的更好方法。好办法。谢谢
【解决方案3】:

经过大量搜索,我找到了两种带有语音指令和箭头图像的逐向导航选项。

  1. skobbler 或 sk 地图 (http://developer.skobbler.com/)
  2. HERE 地图 (https://developer.here.com/)

HERE Maps 有点贵,而且不允许免费使用(只有 90 天的试用期)。但它有很多优点,比如:

  1. 清晰完善的文档:他们提供的文档清晰易懂,他们提供的演示应用程序也实现了所有必需的东西。所以你可以复制和粘贴很多东西。

  2. 对开发者友好:开发者可以完全控制地图(没有限制,您可以用地图做任何您能想到的事情)。

  3. 覆盖范围:导航不仅对某些特定国家/地区清晰且良好,而且几乎适用于所有国家/地区。例如,我在印度检查过它。在印度,Apple Maps 不提供路线,Google Maps 提供,但在我看来,HERE Maps 比 Google 更清晰,甚至更好。

skobbler 很好,并且允许在一定限度内免费使用,但它并不适用于所有国家/地区(不包括印度)。此外,它不像 HERE 地图那样对开发人员友好。

【讨论】:

  • HERE 地图服务条款不允许开发人员逐个制作实时导航应用程序。在第 7 节中,他们将这些称为“路线导航应用程序”:developer.here.com/terms-and-conditions
  • @still_dreaming_1 :请再读一遍,第 7 节的第一行规定,“应用程序不得包括订阅计划中明确允许的用例或用途之外的任何其他用例或用途”,如果您还没有订阅它,那么它适用于你。但在订阅计划后,您可以使用它。
  • @still_dreaming_1:我已经在回答中提到过 - 它很昂贵 - 并且只允许免费使用 90 天的开发。
  • 即使查看他们提供的计划,似乎也没有提供转弯方向的标准计划,该功能仅适用于“自定义计划”。也许如果我要尝试为一个计划付费,那么我会看到一个可用的其他“自定义计划”列表,但这似乎不太可能,因为在此之前它们已经显示了几个不同的付费计划。看来您必须与他们自定义协商那种类型的计划和用例,或者至少他们看起来是这样的。我想这会比他们给你看的付费计划更贵。
  • 您可以看到,只有在“联系我们”计划下,才提供高级功能,并且不显示价格。因此,您必须与他们协商计划和价格。
【解决方案4】:

我自己通过搜索逐步解决方案偶然发现了这个线程,然后我进一步搜索并发现了这个有前途的 javascript 项目:

FFWDme.js - 是一个 JavaScript 工具包,旨在为移动浏览器带来交互式 GPS 行车路线

它是开源的。 它是可配置的,但默认情况下它使用leaflet.js 来制作滑动地图和可配置的Tile-server,因此您可以在开放街道地图上运行它。它还使用开源 Graphhopper 提供方向服务,但您可以添加自己的。

看起来很有希望!

【讨论】:

【解决方案5】:

在 Google Maps API ToS 中不允许使用 Google Maps API 创建逐个导航,即使在 2018 年 7 月他们更新了 ToS 的价格变化之后也是如此。

来自Google Maps new ToS section 3.2.4(强调我的):

(c) 不得重新创建 Google 产品或功能。 客户不会使用 服务以创建具有以下功能的产品或服务 实质上类似于或重新创造另一个人的特征 Google 产品或服务。 客户的产品或服务必须包含 Google 产品之外的实质性、独立的价值和功能 或服务。例如,客户不会:(i) 重新分发 谷歌地图核心服务或假装它们是客户的 服务; (ii) 创建谷歌地图核心服务的替代品, Google 地图或 Google 地图移动应用程序或其功能; (iii) 使用 列表或目录服务中的 Google 地图核心服务或 创建或增加广告产品; (iv) 合并来自 Directions API、Geolocation API 和 Maps SDK for Android 创建 实时导航功能与 Google Maps for Android 移动应用提供的功能。

【讨论】:

    【解决方案6】:

    我在这里迟到了,但这会对某人有所帮助,我在这种情况下找到了一些东西。谷歌提供应用内导航和谷歌地图逐向导航支持。已付费,您可以在下面的链接中查看更多信息。

    https://cloud.google.com/maps-platform/rides-and-deliveries

    不确定它是否能解决您的问题。

    【讨论】:

      【解决方案7】:

      目前还不可能,但谷歌有一些私人合作伙伴关系

      Lyft 推出应用内谷歌地图导航 https://www.theverge.com/2017/10/12/16465414/lyft-google-maps-waze-navigation-app-drivers

      【讨论】:

      • 你能提供参考我们如何做同样的事情吗?
      • Lyft 更有可能与 google 签订了特殊合同,并且此功能不会向公众开放。
      • 当然是特殊合同。这就是为什么我提到“看起来这很快就会成为可能”
      • 鉴于链接已损坏...因为它很旧...
      猜你喜欢
      • 1970-01-01
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 2014-07-25
      • 1970-01-01
      相关资源
      最近更新 更多