为您的 iOS 应用启用 Geospatial API

配置应用设置,以使用 Geospatial API

前提条件

确保您了解基本 AR 概念以及如何配置 ARCore 会话,然后再继续。

如果您想要运行一个示例应用来演示此处所述的功能,请参阅适用于 iOS 的 ARCore Geospatial 快速入门

如需详细了解 Geospatial API,请参阅 Geospatial API 简介

如果您是第一次使用 ARCore 进行开发,请参阅使用入门,了解软件和硬件要求、前提条件以及您使用的平台特有的其他信息。

启用 ARCore API

在您的应用中使用视觉定位系统 (VPS) 之前,您必须先在新的或现有的 Google Cloud 项目中启用 ARCore API。此服务负责托管、存储和解析地理空间锚点。

最好使用无密钥授权,但也支持 API 密钥授权。

将所需的库添加到您的应用

在授权您的应用调用 ARCore API 之后,您必须添加库才能在应用中启用地理空间功能。

更新应用的 Podfile 以包含 ARCore SDK 和受支持的 iOS 版本控制。操作方法如下:

  1. 将以下 platformpod 添加到项目的 Podfile 中:

    platform :ios, '11.0'
    pod 'ARCore/Geospatial', '~> 1.41.0'
    

    如果您想支持 iOS 10,也可以指定 platform :ios, '10.0'。但请注意,Geospatial API 仅在 iOS 11 或以上版本的设备上运行时才能正常运行。

  2. 打开终端窗口,然后从 Xcode 项目所在的文件夹中运行 pod install

    这会生成一个 .xcworkspace 文件,供您用于构建和运行应用。

确保您的开发环境满足 ARCore SDK 要求,如快速入门中所述。

在会话配置中启用地理空间功能

检查设备兼容性

并非所有支持 ARCore 的设备也支持 Geospatial API,如quickstart中所述。

使用 GARSession.isGeospatialModeSupported: 检查设备,如下所示:

if (![self.garSession isGeospatialModeSupported:GARGeospatialModeEnabled]) {
  [self setErrorStatus:@"GARGeospatialModeEnabled is not supported on this device."];
  return;
}

GARSessionConfiguration *configuration = [[GARSessionConfiguration alloc] init];
configuration.geospatialMode = GARGeospatialModeEnabled;
[self.garSession setConfiguration:configuration error:&error];
if (error) {
  [self setErrorStatus:[NSString stringWithFormat:@"Failed to configure GARSession: %d",
                                                  (int)error.code]];
  return;
}

在运行时请求用户授予位置信息权限

您的应用必须在运行时请求以下位置信息权限,然后再配置会话:

检查设备当前位置的地理空间可用性

由于 Geospatial API 结合使用 VPS 和 GPS 来确定 Geospatial 转换,那么只要设备能够确定其位置,就可以使用该 API。在 GPS 精确度较低的区域,例如室内空间和人口密集的城市环境中,该 API 将依靠 VPS 覆盖范围来生成高精确度的转换。在典型条件下,VPS 可提供约 5 米的位置精确度和 5 度的旋转精度。使用 GARSession.checkVPSAvailabilityAtCoordinate:completionHandler: 确定指定位置是否具有 VPS 覆盖范围。

Geospatial API 也可以在没有 VPS 覆盖范围的区域使用。在没有上部障碍物或上部障碍物的户外环境中,GPS 可能足以实现高准确度的变形。

后续步骤