我们如何在应用界面中打开 iOS 6 的地图应用

Posted

技术标签:

【中文标题】我们如何在应用界面中打开 iOS 6 的地图应用【英文标题】:How can we open the Maps app for ios 6 within the app interface 【发布时间】:2013-06-14 12:29:42 【问题描述】:

我正在为 ios 6 的地图轮流导航使用以下代码,

Class mapItemClass = [MKMapItem class];
    if (mapItemClass && [mapItemClass respondsToSelector:@selector(openMapsWithItems:launchOptions:)])
    
        // Create an MKMapItem to pass to the Maps app
        CLLocationCoordinate2D coordinate =
        CLLocationCoordinate2DMake(16.775, -3.009);
        MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:coordinate
                                                       addressDictionary:nil];
        MKMapItem *mapItem = [[MKMapItem alloc] initWithPlacemark:placemark];
        [mapItem setName:@"My Place"];
        // Pass the map item to the Maps app
        [mapItem openInMapsWithLaunchOptions:nil];


    

它将我重定向到地图应用程序,所以,我需要在我的应用程序界面中打开它,以便用户可以留在应用程序中而不退出应用程序界面。

请提出一些想法来控制它。

【问题讨论】:

您可以添加 MKMapView 并创建自定义导航栏进行导航 【参考方案1】:

MKMapKit 不支持MKMapView 中的导航,您需要将用户发送到 map.app。

如果您真的想在您的应用中使用转弯导航,您唯一的选择是自己构建导航。

【讨论】:

我们是否使用 Navit Api 来完成几乎相同的工作,或者 Navit 是否为 ios 提供了任何 api? 对不起,我不熟悉任何 Navit api?这也是一个新问题,如果你想要一个新问题的答案,你应该问一个新问题。【参考方案2】:

正如 rckoenes 所说,如果您不想启动外部应用程序,则必须自己实现。

如果您打算做一个简单版本的逐向导航,您可以通过 Google Maps Directions API 获取相关数据: https://developers.google.com/maps/documentation/directions/

从 JSON(或 xml)响应中,您可以获得每个步骤和航点的驾驶说明和位置数据。此处还提供了标签“overview_polyline”下的字符串。如果您使用的是 Google Maps IOS SDK,您可以使用此字符串作为 GMSPath 直接在地图上绘制路线。 自行编写的导航应用程序的主要挑战是构建一个强大的逻辑来跟踪用户并准确地提供转弯指令,以及异常处理(例如在隧道中丢失信号......)。但是只是直观地显示路线和说明应该相对容易。

【讨论】:

以上是关于我们如何在应用界面中打开 iOS 6 的地图应用的主要内容,如果未能解决你的问题,请参考以下文章

IOS实现应用内打开第三方地图app进行导航

如何使用我的 ios 应用程序中的路线打开苹果地图应用程序

在 iOS 应用程序中打开 Google 地图视图

Firemonkey:如何从我的应用程序中打开本机 IOS 地图?

iOS : 如何在谷歌地图上启用音频方向

如何使用地图:在phonegap ios应用程序中