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

本 ARCore Geospatial API 快速入门介绍了如何运行示例应用 。

有关使用 Geospatial API 开发自己的应用的指南,请参阅 iOS 版地理空间开发者指南

请参阅 ARCore Geospatial API 简介,了解更多信息 有关 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. 打开 Examples 文件夹,选择 GeospatialExample 文件夹,然后点击 Open

设置 Google Cloud 项目

在您的应用中使用视觉定位系统 (VPS) 之前,您必须先 启用 ARCore API 新建或现有的 Google Cloud 项目中。尽管 Geospatial API 适用于 无密钥和 API 密钥授权。在本快速入门指南中, Key 方法。

设置授权

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

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

  2. 将您的 API 密钥添加到 GARSession:粘贴您从 文本 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 工作区文件,然后点击 签名和功能

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

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

    您可以使用默认的软件包标识符从 Xcode 运行应用,但 如果使用 GeospatialExample 作为您自己的存根,则必须更改该值 正式版应用

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

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

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

您应该可以看到相机视图,以及描述设备当前地理空间转换的调试信息。扫描环境时 请注意,定位准确度置信度值可能会随着您 来回移动。

当 ARCore 确定您设备的位置和方向时,您就可以放置一个 使用 Geospatial 转换,在您的当前位置锚定。

如果无法获取 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 进行构建。