在iOS 6中为MKMapKit路由数据

时间:2012-10-05 20:26:47

标签: ios ios6 mapkit ios6-maps

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

我一直在搜索,但据我所知,Apple没有提供任何路由数据。到目前为止,答案最接近答案似乎是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 个答案:

答案 0 :(得分:5)

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

  

在iOS 6及更高版本中,Map Kit支持提供基于地图的功能   给用户的指示。应用可以是路线提供商或他们   可以使用地图应用本身来提供路线。消费的应用   方向信息是通过发送适当的请求来实现的   地图应用程序,然后处理显示该信息的任务   给用户。但是,如果您正在实施您的导航应用程序   拥有,您可以将您的应用程序注册为路由应用程序 - 即提供商   方向。当地图应用程序收到来自的方向请求时   用户(或其他应用),然后它可以将这些请求转发到您的应用   用于显示。

Source

因此,您最好的选择是使用外部路由数据或地图应用。由于Google禁止在不在Google地图上显示的情况下使用其路由数据,因此您可能需要查看bing API(here)。它们并不是很明显,它们要求您使用带有bing路由数据的bing映射,但它们也提供了静态映射api(here)。

或者,您可能需要查看this project on github。它显示了如何在地图视图中加载谷歌地图图块。

祝你好运。

答案 1 :(得分:5)

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

我相信您只需将徽标放在应用上的某个位置。

答案 2 :(得分:3)

Apple可能会在将来提供路由信息,但目前只在地图应用中提供。

一种解决方案是在地图视图中使用Google磁贴。 ClassicMap的代码完全实现了这一功能,并且可以获得自由许可。将它用作权宜之计,直到Apple提供路由信息。

答案 3 :(得分:0)

你是对的,10.1.1点g:

中的Google API terms of service状态
  

(g)没有Google地图时不使用内容。除非您有,否则您不得在没有相应Google地图的情况下使用或显示内容   明确允许在Maps API文档中这样做,或   通过谷歌的书面许可。无论如何,你不能使用   或在非Google地图上显示内容或与其一起显示内容。对于   例如,您不得使用通过服务获得的地理编码   与非Google地图结合使用。另一个例子,你不能   显示街景图像以及非谷歌地图,但您可以   显示没有相应Google地图的街景图像,因为   Maps API文档明确允许您这样做。

访问Google API直到iOS 6透明,并通过Apple的MapKit框架访问,Apple为开发人员处理了所有许可,费用等,我们无需担心这一点。

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

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

这是一个问题,如果您的应用很受欢迎,并且Google意识到,他们可能会选择向您提出问题。

目前还没有正确的解决方法,有些应用将Google地图平铺到Apple地图上,但是您需要向Google注册您的应用,以获取我认为的API密钥,这会限制您的请求数量和可能您可能需要向Google支付API使用费。