iOS6中MKMapKit的路由数据

3

我之前在iOS应用程序中进行过路由,但是随着iOS6的推出,我们现在显示的是Apple地图 - 这会导致问题,因为我们正在使用Google路由数据,如果我们使用Google数据,则应在Google地图上显示。

我一直在搜索,但据我所知,Apple没有提供任何路由数据。到目前为止,最接近答案的东西似乎是当Apple说“消耗方向信息的应用程序通过向地图应用程序发送适当的请求来执行将该信息显示给用户的任务。” - 对我来说,这意味着Maps应用程序将被打开以显示路线,并将用户带出我们的应用程序。

  • 在使用Apple地图的iOS6应用程序中,我们可以从哪里获取可接受的即时路由数据?
4个回答

5

很遗憾,MapKit不提供路由数据。

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

来源

所以,你最好使用外部路由数据或地图应用程序。由于Google禁止在不显示在Google地图上的情况下使用其路由数据,因此您可能需要检查bing API(here)。它并不立即明显地要求您使用bing地图来获取bing路由数据,但是他们也提供静态地图API(here)。
或者,您可以查看this project on github。它展示了如何在地图视图中加载Google地图瓦片。
祝你好运。

5
你可以使用MapQuest的Open Directions API。它是免费的,似乎没有任何限制。他们还有一个许可证API,每日有免费限制。
我相信你只需要在你的应用程序中放置他们的标志。

3

未来可能会有Apple提供路由信息,但现在它仅在Maps应用程序中可用。

一种解决方案是在地图视图中使用Google瓷砖。 ClassicMap的代码已经完整实现了这一点,并且具有自由许可证。在Apple提供路由信息之前,请使用它作为权宜之计。


如果你在关注这个话题,当更高级别的苹果员工意识到正在发生什么时,ClassicMap 就被从应用商店中下架了。你不能替换地图视图中的地图瓦片。 - Daniel
@Daniel 我知道这个应用程序不在商店里,但我不知道原因。你确定知道它被下架的原因吗?苹果公司并没有反对替换瓷砖,事实上他们有一个WWDC会议,向你展示如何使用覆盖层来做到这一点。而且我可以指出至少有两个应用程序在商店里使用Google地图上的瓷砖(Maps+和MyMap+,后者刚刚在昨天更新)。 - nevan king
我得去看看你提到的那两个应用。当我下载ClassicMap时,很明显它在与苹果开玩笑。更换瓦片使其像Google地图,但没有显示Google商标,还将法律链接留在底部。它基本上就像是一个被黑客攻击过的苹果应用程序。我确定这不是因为使用了Google数据,而是因为所有的基础设施和法律都还在,就像是苹果的一样。覆盖层与完全绕过苹果瓦片有点不同。 - Daniel
我真的相信MyMap+没有使用MKMapView来显示Google瓦片。Maps+似乎是这样做的。无论如何,当使用Google地图瓦片时,它们都没有显示苹果的法律链接。 - Daniel

0

您是正确的,Google API使用条款在10.1.1点g中声明:

(g) 未经Google地图,禁止使用内容。除非Maps APIs文档或Google书面许可明确允许你这样做,否则不得使用或显示内容时没有相应的Google地图。在任何情况下,你都不得在非Google地图上使用或显示内容。例如,你不得将服务获取的地理编码与非Google地图相结合。另一个例子是,你不得将街景影像与非Google地图并列展示,但由于Maps APIs文档明确允许这样做,你可以展示街景影像而不需要相应的Google地图。

访问Google API直到iOS 6为止都是透明的,并通过苹果的MapKit框架进行访问,由苹果负责所有授权,费用等,我们开发人员不需要担心这个。

现在苹果正在使用自己的地图服务,我们无法通过MapKit框架访问Google API,就像你所说的那样,而且MapKit不能以你想要的方式进行路由。

因此,您必须与Google保持联系,但问题是现在您将在没有Google地图的情况下使用Google数据。

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

目前还没有正确的解决方法,一些应用程序正在将Google地图平铺到Apple地图上,但是然后您将需要向Google注册API密钥,这会限制您的请求次数,潜在地您可能需要向Google支付API使用费用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接