3

我之前在 iOS 应用程序中完成了路由,但是在 iOS6 中,我们现在显示 Apple 地图 - 这会导致问题,因为我们使用的是 Google 路由数据,如果我们使用 Google 数据,我们应该在 Google 地图上显示它。

我一直在搜索,但据我所知,Apple 不提供任何路由数据。到目前为止,最接近答案的似乎是苹果公司所说的Apps that consume direction information do so by sending an appropriate request to the Maps app, which then handles the task of displaying that information to the user.——对我来说,这意味着地图应用程序将被打开以显示路线,并将用户带出我们的应用程序。

  • 我们在哪里可以获得可以在使用 Apple 地图的 iOS6 应用程序上使用的即时路由数据?
4

4 回答 4

5

不幸的是 MapKit 不提供路由数据。

在 iOS 6 及更高版本中,Map Kit 支持向用户提供基于地图的方向。应用程序可以提供方向,也可以使用地图应用程序本身来提供方向。使用方向信息的应用程序通过向地图应用程序发送适当的请求来完成此操作,然后地图应用程序处理向用户显示该信息的任务。但是,如果您正在实现自己的导航应用程序,则可以将您的应用程序注册为路线应用程序,即路线提供者。当地图应用程序接收到来自用户(或其他应用程序)的方向请求时,它可以将这些请求转发到您的应用程序进行显示。

来源

因此,您最好的选择是使用外部路由数据或地图应用程序。由于 Google 禁止在未显示在 Google 地图上的情况下使用其路由数据,因此您可能需要检查 bing API(此处)。它们要求您将 bing 地图与 bing 路由数据一起使用并不是很明显,但它们也提供了静态地图 api(此处)。

或者,您可能想在 github 上查看这个项目。它显示了如何在地图视图中加载谷歌地图图块。

祝你好运。

于 2012-10-10T01:55:35.407 回答
5

您可以使用MapQuest 的 Open Directions API。它是免费的,而且似乎没有任何限制。他们还有一个许可的 API,每日免费限制。

我相信您只需将他们的徽标放在您的应用程序的某个位置。

于 2012-10-14T05:19:30.750 回答
3

Apple 可能会在未来提供路线信息,但目前它仅在地图应用中可用。

一种解决方案是在您的地图视图中使用 Google 切片。ClassicMap的代码对此进行了完整的实现,并且可以通过自由许可证获得。在 Apple 提供路由信息之前,将其用作权宜之计。

于 2012-10-15T17:33:12.963 回答
0

您是对的,Google API 服务条款在 10.1.1 点 g 中:

(g) 不得使用没有 Google 地图的内容。您不得在没有相应 Google 地图的情况下使用或显示内容,除非 Maps API 文档明确允许您这样做,或获得 Google 的书面许可。在任何情况下,您都不得在非谷歌地图上或与非谷歌地图一起使用或显示内容。例如,您不得将通过服务获得的地理编码与非 Google 地图结合使用。作为另一个示例,您不得在非 Google 地图旁边显示街景图像,但您可以在没有相应 Google 地图的情况下显示街景图像,因为 Maps API 文档明确允许您这样做。

在 iOS 6 之前,对 Google API 的访问是透明的,Apple 通过 MapKit 框架访问,Apple 为我们开发人员处理了所有的许可、费用等,我们不需要担心这一点。

现在 Apple 正在使用他们自己的地图服务,我们无法通过 MapKit 框架访问 Google API,就像您说的那样,并且 MapKit 无法以您想要的方式使用它。

所以你必须与谷歌保持沟通,但问题是你现在将使用谷歌数据而没有谷歌地图。

这是一个问题,如果您的应用程序很受欢迎,并且 Google 意识到,他们可能会选择与您发生问题。

目前还没有正确的方法,一些应用程序正在将谷歌地图平铺到苹果地图上,但是你需要向谷歌注册你的应用程序以获得我假设的 API 密钥,这会限制你的请求数量,并且可能你可能必须向 Google 支付 API 使用费。

于 2012-10-16T16:03:37.330 回答