配置应用的设置,以便其可以使用 Geospatial API。
前提条件
确保您了解 AR 基础概念 以及如何在继续之前配置 ARCore 现场录像。
如果您想运行演示所描述功能的示例应用 请参阅 适用于 iOS 的 ARCore 地理空间快速入门。
请参阅 Geospatial API 简介,了解详情 有关 Geospatial API 的信息。
如果您是初次使用 ARCore 进行开发,请参阅使用入门 了解软件和硬件要求、前提条件和 特定于您使用的平台的其他信息。
启用 ARCore API
在您的应用中使用视觉定位系统 (VPS) 之前,您必须先 启用 ARCore API 新建或现有的 Google Cloud 项目中。此服务负责 托管、存储和解析地理空间锚点。
首选无密钥授权,但也支持 API 密钥授权。
将所需的库添加到您的应用
授权您的应用调用 ARCore API 后,您必须将库添加到 在您的应用中启用地理空间功能。
为您的应用更新Podfile
,使其包含 ARCore SDK 和受支持的 iOS
版本控制具体操作步骤如下:
将以下
platform
和pod
添加到您的 项目的Podfile
:platform :ios, '11.0' pod 'ARCore/Geospatial', '~> 1.45.0'
如果您想支持 iOS 10,也可以指定
platform :ios, '10.0'
。 但请注意,Geospatial API 只能在 iOS 11 或更高版本的运行时上运行。打开终端窗口,然后从所在的文件夹运行
pod install
您的 Xcode 项目是否存在。这将生成一个
.xcworkspace
文件,用于构建和 运行应用所需的资源
请确保您的开发环境满足 ARCore SDK 要求,因为 快速入门中的说明。
在会话配置中启用地理空间功能
检查设备兼容性
并非所有支持 ARCore 的设备都支持 Geospatial API,因为 请参阅快速入门。
使用
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;
}
在运行时请求用户授予位置信息权限
您的应用必须在运行时请求以下位置权限,然后才能 配置会话:
kCLAuthorizationStatusAuthorizedWhenInUse
CLAccuracyAuthorizationFullAccuracy
(适用于 iOS 14 及更高版本)
检查设备当前位置的地理空间可用性
由于 Geospatial API 结合使用 VPS 和 GPS 来确定地理空间转换,因此只要设备能够确定其位置,就可以使用该 API。在 GPS 准确度较低的区域,例如室内空间和人口密集的城市环境,API 将依赖 VPS 覆盖范围生成高精度转换。在典型条件下,VPS 的定位精度预计为 5 米左右,旋转精度为 5 度。使用 GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
确定指定位置是否提供 VPS 覆盖范围。
Geospatial API 也可用于没有 VPS 覆盖的区域。在顶部障碍很少或没有障碍物的户外环境中,GPS 可能足以产生高精度的转换。
后续步骤
- 获取设备相机的地理空间转换,以确定用户设备在现实世界中的准确位置。
- 检查设备给定位置的 VPS 可用性。