在 Xcode 中打开原生谷歌地图
Posted
技术标签:
【中文标题】在 Xcode 中打开原生谷歌地图【英文标题】:Opening native google maps in Xcode 【发布时间】:2011-11-26 23:16:11 【问题描述】:您好,我有一个使用地图和位置的 iPhone 应用程序。
我希望用户能够按下一个按钮,提供前往该位置的转弯指示。我知道我不允许在应用程序中执行此操作,但我想知道是否有人可以告诉我是否可以链接到本地谷歌地图应用程序,该应用程序将输入从用户当前位置到该位置的方向。
如果可以的话,你能告诉我怎么做吗?
任何帮助将不胜感激。
谢谢
【问题讨论】:
【参考方案1】:当然,这是可能的 - 您只需告诉系统打开一个谷歌地图链接,并设置开始和结束地址的参数。
您可能想尝试使用以下谷歌地图网址:
http://maps.google.com/maps?saddr=x,y&daddr=x,y
所以你可以看到两个参数是saddr
(起始地址)和
daddr
(目标地址)。您将它们设置为一对坐标,用逗号分隔。
这是我编写的一段代码,它将把用户从他们当前的位置带到一个特定的位置(在我的例子中是硬编码的)。
这是核心位置委托方法,一旦位置确定就会被调用。
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
if (newLocation.horizontalAccuracy == oldLocation.horizontalAccuracy)
[self.locationManager stopUpdatingLocation];
CLLocationCoordinate2D coords = newLocation.coordinate;
NSString *stringURL = [NSString stringWithFormat:@"http://maps.google.com/maps?saddr=%g,%g&daddr=50.967222,-2.153611", coords.latitude, coords.longitude];
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url];
要设置这一切,您可以将位置管理器的属性添加到您的控制器,然后当您想要设置它时(比如在 viewDidLoad
中)初始化它,如下所示:
self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
[self.locationManager startUpdatingLocation];
调用 [[UIApplication sharedApplication] openUrl:url];
会将其发送到系统的 URL 处理程序,该处理程序将检测到它是一个谷歌地图链接,并在地图中打开它。
希望有帮助
【讨论】:
以上是关于在 Xcode 中打开原生谷歌地图的主要内容,如果未能解决你的问题,请参考以下文章