直接从应用程序运行Apple map gps导航

时间:2013-09-10 07:09:44

标签: objective-c navigation gps apple-maps

我目前正在开发一款带有地图视图的应用,可以打开Apple地图并发送经度和纬度,以便开始和停止位置。因此,用户可以在Apple Maps的帮助下导航。我的问题是:是否可以让Apple Maps应用程序自动运行导航功能?现在它打开Apple Maps应用程序,在起始位置和停止位置上使用正确的坐标和注释,但我必须单击导航功能才能让Apple Maps从开始到结束呈现导航路线。 / p>

以下是从我自己的应用中打开Apple Maps的代码:

// NAVIGATION ACTION SHEET

        if (buttonIndex == 0) {
            double toLatDouble = [to_lat doubleValue];
            double toLongDouble = [to_long doubleValue];
            CLLocationCoordinate2D location = CLLocationCoordinate2DMake(toLatDouble,toLongDouble);

            // Apple Maps, using the MKMapItem class
            MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:location addressDictionary:nil];
            MKMapItem *item = [[MKMapItem alloc] initWithPlacemark:placemark];
            item.name = self.toLocation;
            [item openInMapsWithLaunchOptions:nil];

        }
        else if (buttonIndex == 1){
            double fromLatDouble = [from_lat doubleValue];
            double fromLongDouble = [from_long doubleValue];
            CLLocationCoordinate2D location = CLLocationCoordinate2DMake(fromLatDouble,fromLongDouble);

            // Apple Maps, using the MKMapItem class
            MKPlacemark *placemark = [[MKPlacemark alloc] initWithCoordinate:location addressDictionary:nil];
            MKMapItem *item = [[MKMapItem alloc] initWithPlacemark:placemark];
            item.name = self.toLocation;
            [item openInMapsWithLaunchOptions:nil];

        }else {
            // Cancel
            NSLog(@"User canceled navigation actionSheet");
        }

1 个答案:

答案 0 :(得分:3)

正如调用MKMapItemopenInMapsWithLaunchOptions的文档中所述:您也可以传递一些选项。其中一个激活导航模式。

例如,要开始驾驶方向,您应该写:

[item openInMapsWithLaunchOptions:@{MKLaunchOptionsDirectionsModeKey :MKLaunchOptionsDirectionsModeDriving}];