在 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 中打开原生谷歌地图的主要内容,如果未能解决你的问题,请参考以下文章

打开android原生谷歌地图应用程序获取从当前位置开始的方向

Ionic 3 原生谷歌地图限制地图移动/拖动/旋转选项

如何使用相机谷歌地图 xcode 移动标记(图钉)

如何把谷歌地图动画转换为视频文件

用于文本叠加的自定义标记谷歌地图街景 Xcode

如何在 Global Mapper中打开谷歌卫星地图