2011-08-14 58 views
0

我在写一个应用程序,希望用户能够获取路线。我知道谷歌API,我已经实现了,但我想知道如何直接跳转到本地地图应用程序并改为给用户指示。我想我以前看过它,但我可能弄错了。从另一个应用程序转到iPhone地图应用程序

任何帮助,非常感谢。

回答

2

您可以使用常规指向Google地图的网址打开地图应用。从Apple URL Scheme reference

的地图URL方案是用来展示的地理位置,并产生两个点之间的行车路线。如果您的应用程序包含地址或位置信息,则可以使用地图链接将该信息转发到iOS上的地图应用程序以及其他平台上的Google地图网站。

与某些方案不同,地图URL不以“地图”方案标识符开头。相反,地图链接被指定为常规http链接,但针对Google地图服务器。以下示例显示了您将在Safari和本地应用程序中使用的字符串,以显示加利福尼亚州库比蒂诺市的地图。

  • HTML链接:

<a href="http://maps.google.com/maps?q=cupertino">Cupertino</a>

注意,在没有安装的地图(不知道那些即使存在的话)的设备上,该链接将在一个普通浏览器中打开,因为它只是一个HTTP链接。

要打开URL,您可以在UIWebView中显示链接,也可以使用代码打开它。例如:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“http://maps.google.com/maps?q=Cupertino”]];

如果你想在一个自定义位置来传递,并打开它,当用户点击一个按钮,就可以做出这样的方法:

- (IBAction) openMapsAppAndShowLocation:(NSString *)locationToShow{ 

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://maps.google.com/maps?q=%@", locationToShow]]]; 

} 

如果你愿意,你可以重构采取纬度的方法/经度对。这可能是这样的:

- (IBAction) openMapsAppAndShowLatitude:(double)latitude andLongitude:(double)longitude{ 

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://maps.google.com/maps?q=\"%f,%f\"", latitide, longitude]]]; 

} 
+0

谢谢!那么问题是:这个URL怎么不会把我带到地图应用程序? 'http://maps.google.com/maps?saddr40.072318,-75.130032&daddr = 40.095203,-75.125366' – Mason

+2

@Mason - 会发生什么?看起来你在'saddr'后面遗漏了一个等号,btw。) – Moshe

+0

Agh就是这样!如此令人尴尬,对此感到遗憾。非常感谢! – Mason

2

您可以使用此:

NSString *latlong = @"-56.568545,1.256281"; 
NSString *url = [NSString stringWithFormat: @"http://maps.google.com/maps?ll=%@", 
[latlong stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]; 
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]]; 

此,

UIApplication *app = [UIApplication sharedApplication]; 
[app openURL:[NSURL URLWithString: @"http://maps.google.com/maps?q=London"]]; 

或本

[someUIApplication openURL:[[NSURL alloc] initWithString: @"http://maps.google.com/maps?q=London"]] 

你甚至可以指定缩放级别使用z标志(1-19之间的值):

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://maps.google.com/maps?z=8"]]; 

这应该调用Google地图应用程序。我认为这些说明仅适用于实际设备,不适用于模拟器。祝你好运,下面的评论,如果您有与任何片段问题:)

1

很简单

UIApplication *app = [UIApplication sharedApplication]; 
[app openURL:[NSURL URLWithString:@"http://maps.google.com/maps?q=London"]]; 

简单的吻

1

@Moshe

注意,一个设备上没有安装地图(不知道这些地图是否存在)

以iPhone模拟器为例。

相关问题