0

我正在为 iOS 6 的 Map turn by turn 导航使用以下代码,

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];


    }

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

请提出一些想法来控制这一点。

4

2 回答 2

1

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

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

于 2013-06-14T12:33:28.720 回答
0

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

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

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

于 2013-06-14T13:10:23.953 回答