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

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

如需了解如何使用 Geospatial API 开发自己的应用,请参阅 适用于 iOS 的地理空间开发者指南

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

如果您刚开始使用 ARCore 进行开发,请参阅使用入门

前提条件

  • Xcode 13.0 或更高版本
  • 如果使用 Cocoapods,则需要 Cocoapods 1.4.0 或更高版本
  • 搭载 iOS 12.0 或更高版本且支持 ARKit 的 Apple 设备(部署目标必须为 iOS 12.0 或更高版本)

设置示例应用

ARCore SDK for iOS 中包含的 GeospatialExample 项目介绍了调用 Geospatial API 的代码。

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

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

  3. 前往 arcore-ios-sdk-master/Examples 文件夹。

  4. 打开 Examples 文件夹,选择 GeospatialExample 文件夹,然后点击 Open

设置 Google Cloud 项目

在应用中使用 Visual Positioning System (VPS) 之前,您必须先在新建或现有的 Google Cloud 项目中启用 ARCore API。虽然 Geospatial API 支持无密钥和 API 密钥授权,但在本快速入门指南中,请使用 API 密钥方法。

设置授权

如需向 VPS 发出 Geospatial API 调用,示例应用需要获得授权,并且可以使用不受限制的 API 密钥。如果您使用的是受限 API 密钥,则还必须提供一个软件包 ID 以与 API 密钥相关联。

  1. 在 XCode 的 GeospatialExample 示例应用中,打开 ViewController.m 文件,然后搜索 your-api-key

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

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

设置 ARCore SDK

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

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

构建和运行示例应用

  1. 在 Xcode 中,选择 GeospatialExample 工作区文件,然后点击 Signing & Capabilities(签名和功能)。

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

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

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

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

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

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

您应该可以看到相机视图,以及描述设备当前地理空间转换的调试信息。扫描周围环境时,请注意,如果您位于 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 进行构建。