如何从iPhone SDK中的其他应用程序打开地图应用程序

时间:2011-07-06 17:30:11

标签: ios objective-c

为什么我打开时

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://maps.google.com/maps?saddr=Current Location&daddr=123 Main St,Ottawa,ON"]];

地图应用程序未打开?此外,甚至Safari也没有开放。

但是当我打开:http://google.com时,Safari通常会打开。

1 个答案:

答案 0 :(得分:1)

嗯......由于这个问题超过2岁并且收到了超过3k的观点而没有答案,我认为这是关于时间有人发帖的问题。主要是因为显然交通一直​​出现在这里。


在任何情况下,您都可以在本网站的其他各个部分找到答案,但对我来说就像魅力一样:https://stackoverflow.com/a/12432512/525576

这个答案的重要部分是它适用于iOS 5及以下版本以及iOS 6及以上版本。

我已经编辑了一些答案,以适应iOS 7自动出现的弧标准。

CLLocationCoordinate2D coordinate = CLLocationCoordinate2DMake(latitude,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
    [destination openInMapsWithLaunchOptions:@{MKLaunchOptionsDirectionsModeKey:MKLaunchOptionsDirectionsModeDriving}];        
} 
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", latitude, longitude];
    [[UIApplication sharedApplication] openURL: [NSURL URLWithString: url]];
}