之前我已经在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.
- 这对我来说意味着地图应用程序将被打开以显示路线,并将用户从我们的应用中删除。
答案 0 :(得分:5)
不幸的是,MapKit不提供路由数据。
在iOS 6及更高版本中,Map Kit支持提供基于地图的功能 给用户的指示。应用可以是路线提供商或他们 可以使用地图应用本身来提供路线。消费的应用 方向信息是通过发送适当的请求来实现的 地图应用程序,然后处理显示该信息的任务 给用户。但是,如果您正在实施您的导航应用程序 拥有,您可以将您的应用程序注册为路由应用程序 - 即提供商 方向。当地图应用程序收到来自的方向请求时 用户(或其他应用),然后它可以将这些请求转发到您的应用 用于显示。
因此,您最好的选择是使用外部路由数据或地图应用。由于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使用费。