如何在我自己的原生iphone应用程序中嵌入Google Maps iPhone应用程序?

时间:2013-08-13 01:27:03

标签: iphone google-maps

Apple开发者文档解释说,如果您在web page中放置一个链接,然后在iPhone上使用Mobile Safari时单击该链接,则会启动作为iPhone标准提供的Google Maps应用程序。

如何在我自己的原生iPhone应用程序中启动具有特定地址的相同Google地图应用程序(即通过Mobile Safari不是网页),就像点击通讯录中的地址启动地图一样?

1 个答案:

答案 0 :(得分:1)

对于iOS 6.1.1及更低版本,请使用UIApplication的openURL方法。它将执行正常的iPhone魔法URL重新解释。所以

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

应该调用Google地图应用。

从iOS 6开始,您将调用Apple自己的地图应用。为此,请使用要显示的位置配置MKMapItem对象,然后将openInMapsWithLaunchOptions消息发送给它。要从当前位置开始,请尝试:

[[MKMapItem mapItemForCurrentLocation] openInMapsWithLaunchOptions:nil];

您需要将此链接与MapKit相关联(我相信它会提示进行位置访问)。

您也可以使用

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

要在特定坐标下打开Goog​​le地图,请尝试this代码:

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

您可以使用CoreLocation中的当前位置替换latlong字符串。

您还可以使用(“z”)标志指定缩放级别。值为1-19。这是一个例子:

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