如何使用我的ios应用程序中的指示打开Apple地图应用程序

时间:2013-03-22 07:11:45

标签: iphone ios maps direction apple-maps

我的目标是从ios应用程序打开地图应用程序和方向,我可以打开地图应用程序,但它没有显示方向,我已编写如下代码

 NSString *mystr=[[NSString alloc] initWithFormat:@"http://maps.apple.com/maps?saddr=Current+Location&daddr=Newyork"];
            NSURL *myurl=[[NSURL alloc] initWithString:mystr];
            [[UIApplication sharedApplication] openURL:myurl];

任何人都可以帮助我弄清楚如何将参数传递给这个网址和其他任何人吗?

2 个答案:

答案 0 :(得分:22)

CLLocationCoordinate2D coordinate =    CLLocationCoordinate2DMake(self.location.latitude,self.location.longitude);

//create MKMapItem out of coordinates
MKPlacemark* placeMark = [[MKPlacemark alloc] initWithCoordinate:coordinate addressDictionary:nil];
MKMapItem* destination =  [[MKMapItem alloc] initWithPlacemark:placeMark];
if([destination respondsToSelector:@selector(openInMapsWithLaunchOptions:)])
{
    //using iOS6 native maps app
    if(_mode == 1)
    {
        [destination openInMapsWithLaunchOptions:@{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeWalking}];

    }
    if(_mode == 2)
    {
        [destination openInMapsWithLaunchOptions:@{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving}];

    }
    if(_mode == 3)
    {
        [destination openInMapsWithLaunchOptions:@{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeTransit}];

    }

} else{

    //using iOS 5 which has the Google Maps application
    NSString* url = [NSString stringWithFormat: @"http://maps.google.com/maps?saddr=Current+Location&daddr=%f,%f", self.location.latitude, self.location.longitude];
    [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
}

答案 1 :(得分:11)

如果您的意思是根据两点将用户带到地图应用程序,那么您可以这样做:

创建一个如下所示的NSURL:

NSURL *URL = [NSURL URLWithString:@"http://maps.google.com/maps?saddr=%f,%f&daddr=%f,%f"];

您可以适当地插入起始地址和目的地(lat。和long。)。 告诉您的应用程序打开URL

[[UIApplication sharedApplication] openURL:URL];

它会自动带你到地图应用程序!