平台专用指南
Android(Kotlin/Java)
Android NDK (C)
Unity (AR Foundation)
iOS
Unreal Engine
借助 ARCore Geospatial API ,您可以将内容远程附加到 Google 街景覆盖的任何区域,并打造全球范围的 AR 体验。该 API 使用设备传感器和 GPS 数据来检测设备的环境,然后将该环境中可识别的部分与 Google 视觉定位系统 (VPS) 提供的本地化模型进行匹配,以确定用户设备的精确位置。该 API 还会负责将用户的本地坐标与 VPS 中的地理坐标合并,以便您可以在单个坐标系中工作。
使用 VPS 进行全局本地化
Google 地图中的街景图像是 VPS 的基础,这些图像已在全球范围内拍摄了 15 年以上。深度神经网络会识别并描述图像中可能在很长一段时间内都可识别的部分。然后,这些部分会跨数百亿张图像进行组合,以计算全球环境的 3D 点云。此本地化模型由数万亿个点组成,覆盖了几乎所有国家/地区,并且未来还会扩大覆盖范围。
当用户的设备向 Geospatial API 发出请求时,神经网络会处理像素以查找用户环境中可识别的部分,并将其与 VPS 本地化模型进行匹配。然后,计算机视觉算法会计算设备的位置和方向,从而提供比之前仅使用 GPS 时准确得多的位置。
使用 Geospatial API 放置锚点
放置 锚点时,其他 ARCore API(例如 ARCore Cloud Anchor API)也会使用图像地图来确定设备的姿态。不过,这些 API 创建的图像地图是本地的,因为它们需要明确地映射空间。
Geospatial API 按照 WGS84 规范提供锚点的水平(纬度和经度)和垂直(海拔)位置。您几乎可以在世界上的任何位置放置 Geospatial 锚点,只需提供给定的纬度、经度和海拔,而无需手动映射空间。
Geospatial 锚点的类型
有三种类型的 Geospatial 锚点可用于将内容附加到真实世界的位置。WGS84 锚点表示相对于 WGS84 椭球体的给定纬度、经度和海拔的位置。 地形锚点表示相对于地面或楼层的给定纬度、经度和海拔的位置。 屋顶锚点表示相对于建筑物顶部的给定海拔、经度和海拔的位置。 如需了解详情,请参阅开发者指南。
使用 Geospatial API 进行开发的应用场景
以下是在您自己的项目中使用 Geospatial API 的一些方法。
引导用户前往特定位置
GPS 非常适合打造基于位置的体验,但如果您需要打造精确的 AR 体验,其准确性可能会有所偏差。借助 Geospatial API,您无需担心虚拟对象会跳来跳去。您可以明确地将感兴趣的地点映射到内容并可靠地针对该地点进行本地化,让用户能够在密集的城市区域找到自己的汽车,或在繁忙的空间中找到自己的方向。
打造基于位置的 AR 体验
借助 Geospatial API,您可以打造引人入胜的用户体验,提供实用性和趣味性,而无需构建和维护多个位置的地图。让用户沉浸在充满无限可能的虚拟世界中。
游戏和自我展示
借助 Geospatial API,您的用户可以将地球变成创意画布。例如,Balloon Pop 允许用户在现实世界中放置气球作为目标,并尝试使用物理引擎支持的球来戳破它们,该球会对世界空间中的距离做出反应。附近的用户可以通过简单的 Firebase 实现加入体验并戳破相同的气球。借助 Pocket Garden,用户可以利用色彩缤纷的 AR 社区花园来装饰自己的社区,大规模地在现实世界中准确放置种子,种植藤蔓、多肉植物等。Balloon Pop 和 Pocket Garden 都是开源的,您可以利用它们来激发自己的创意。
设备兼容性
少数支持 ARCore 的设备不支持 Geospatial API。这些设备会在 ARCore 支持的设备页面上标明。
后续步骤
- 观看 I/O 讲座,了解 VPS 和 ARCore Geospatial API,其中更详细地介绍了 Geospatial API 及其功能。
- 探索 Balloon Pop 和 Pocket Garden 这两个利用 Geospatial API 的开源示例应用。