适用于 iOS 的地理空间快速入门

本 ARCore Geospatial API 快速入门向您展示了如何在 Xcode 中运行演示 Geospatial API 的示例应用。

如需获取使用 Geospatial API 开发自己的应用的指南,请参阅 iOS 版 Geospatial 开发者指南

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

如果您是第一次使用 ARCore 进行开发,请参阅使用入门

前提条件

  • Xcode 13.0 或更高版本
  • CocoaPods 1.4.0 或更高版本(如果使用 Cocoapods)
  • 运行 iOS 12.0 或更高版本且与 ARKit 兼容的 Apple 设备(部署目标必须为 iOS 12.0 或更高版本)

设置示例应用

ARCore SDK for iOS 附带的 GeospatialExample 项目对调用 Geospatial API 的代码进行了介绍。

  1. 从 GitHub 克隆或下载 ARCore SDK for iOS,以获取示例应用代码。

  2. 打开终端或 Finder 窗口,然后转到您克隆或下载 SDK 的文件夹。

  3. 进入 arcore-ios-sdk-master/Examples 文件夹。

  4. 打开示例文件夹,选择 GeospatialExample 文件夹,然后点击打开

设置 Google Cloud 项目

如需使用视觉定位系统 (VPS),您的应用需要与为 ARCore API 启用的 Google Cloud 项目关联。

您必须在 Google Cloud 项目中启用 ARCore API。如果您需要创建项目,请执行以下操作:

  1. 访问在 Google Cloud Platform 中创建项目

  2. 输入适当的项目名称,并为其选择一个位置。

  3. 点击创建

  4. 在边栏中,选择 API 和服务,然后选择

  5. 搜索并选中 ARCore API,然后点击启用

设置授权

如需对 VPS 进行 Geospatial API 调用,示例应用需要授权,并且可以使用不受限制的 API 密钥。如果您使用受限 API 密钥,则还必须提供软件包 ID 以与该 API 密钥相关联。

  1. 在您的 Google Cloud 项目中,按照创建 API 密钥中的说明获取 API 密钥。

  2. 复制该 API 密钥,因为您将在后续步骤中粘贴该密钥。

  3. 在 Xcode 的 GeospatialExample 示例应用中,打开 ViewController.m 文件并搜索 your-api-key

  4. 将您的 API 密钥添加到 GARSession:将您在上一步复制的 API 密钥粘贴到文本 your-api-key(保留引号)上,如下所示。

    self.garSession = [GARSession sessionWithAPIKey:@"your-api-key"
                                   bundleIdentifier:nil
                                              error:&error];
    

设置 ARCore SDK

GeospatialExample 应用附带一个 Podfile,它预先配置了您需要的 ARCore SDK 和 iOS 版本。如需安装这些依赖项,请打开终端窗口,然后从 Xcode 项目所在的文件夹运行 pod install

这会生成一个 .xcworkspace 文件,您稍后将用该文件构建和运行应用。

构建和运行示例应用

  1. 在 Xcode 中,选择 GeospatialExample 工作区文件,然后点击 Signing & Capabilities

  2. 选中自动管理签名复选框。

  3. Team(团队)字段中,输入团队名称。

    您可以使用默认的软件包标识符从 Xcode 运行应用,但如果您在生产环境中将 GeospatialExample 用作自己应用的存根,则必须更改该标识符。

  4. 连接设备以运行示例应用。

  5. 基于 .xcworkspace 文件构建并运行 GeospatialExample 应用,以在您的设备上启动该应用。

    为了避免构建错误,请确保从 .xcworkspace 文件(而不是 .xcodeproj 文件)进行构建。

您应该能够看到摄像头视图,以及描述设备当前 Geospatial 转换的调试信息。当您扫描周围的环境时,请注意,如果您位于 VPS 定位功能支持的区域,则定位准确性置信度值可能会随着您的移动而发生变化。

当 ARCore 确定设备的位置和方向时,您可以使用地理空间转换将锚点放置在当前位置。

如果 VPS 信息不可用,定位精确度可能过低。应用必须连接到互联网,并且 VPS 必须知道其位置。为获得最佳效果,请在白天在室外(而非室内)运行示例应用。

此外,如果您所在的区域不支持 VPS,或者 GPS 信号不足,您可能需要在应用中调整置信度阈值,才能放置锚点。

如要调整这些阈值:

  1. 在 Xcode 中,打开 ViewController.m 文件并浏览到以下部分:

    // Thresholds for 'good enough' accuracy. These can be tuned for the
    // application. We use both 'low'
    // and 'high' values here to avoid flickering state changes.
    static const CLLocationAccuracy kHorizontalAccuracyLowThreshold = 10;
    static const CLLocationAccuracy kHorizontalAccuracyHighThreshold = 20;
    static const CLLocationDirectionAccuracy kHeadingAccuracyLowThreshold = 15;
    static const CLLocationDirectionAccuracy kHeadingAccuracyHighThreshold = 25;
    
  2. 请根据需要调整这些值。值越高,准确度越低

    降低精度可让应用在放置锚点时增加更宽的纬度。如需了解详情,请参阅调整转换准确率

后续步骤

查看适用于 iOS 的 Geospatial 开发者指南,开始使用 Geospatial API 进行构建。