利用 ARCore Geospatial API 打造基于位置的全球沉浸式 AR 体验

平台专用指南

借助 ARCore Geospatial API,您可以远程将内容附加到 Google 街景覆盖的任何区域,并在全球范围内打造 AR 体验。该 API 使用设备传感器和 GPS 数据来检测设备的环境,然后将该环境中可识别的部分与 Google 视觉定位系统 (VPS) 提供的定位模型进行匹配,以确定用户设备的确切位置。该 API 还会负责将用户的本地坐标与 VPS 中的地理坐标合并,以便您在单个坐标系中工作。

通过 VPS 进行全球本地化

VPS 的基础是 Google 地图中超过 15 年来在全球各地拍摄的街景图片。深度神经网络会识别和描述图片中可能在很长一段时间内可识别的部分。然后,系统会将这些部分跨数百亿张图片组合起来,计算出全球环境的 3D 点云。此本地化模型由数万亿个数据点组成,涵盖几乎所有国家/地区,未来还会扩大覆盖范围。

当用户的设备向 Geospatial API 发出请求时,神经网络会处理像素,以查找用户环境中可识别的部分,并将其与 VPS 本地化模型进行匹配。然后,计算机视觉算法会计算设备的位置和方向,提供的位置信息比之前仅使用 GPS 时提供的位置信息要准确得多。

使用 Geospatial API 放置锚点

放置锚点时,其他 ARCore API(例如 ARCore Cloud Anchor API)也会使用图片地图来确定设备的姿态。不过,这些 API 创建的图像映射是本地的,因为它们明确需要映射一个空间。

Geospatial API 可根据 WGS84 规范提供锚点的水平(纬度和经度)和垂直(海拔)位置。您可以在世界上几乎任何地点的给定纬度、经度和海拔高度放置地理空间锚点,而无需手动绘制空间地图。

地理空间锚点类型

有三种类型的地理空间锚点可用于将内容附加到真实地理位置。WGS84 锚点表示相对于 WGS84 椭球体的给定纬度、经度和海拔位置。地形锚点表示相对于地面或地板的给定纬度、经度和海拔位置。屋顶锚点表示给定海拔高度、经度和相对于建筑物顶部的位置。如需了解详情,请参阅开发者指南

使用 Geospatial API 进行开发的用例

以下是一些可以在您自己的项目中使用 Geospatial API 的方法。

引导用户前往特定位置

GPS 非常适合构建基于位置的体验,但当您需要构建精确而精确的 AR 体验时,精确度可能会降低。有了 Geospatial API,你就不必担心虚拟对象在周围乱跳了。您可以明确映射地图注点,以便将内容附加到该地图注点并根据该地图注点可靠地进行本地化,从而让用户能够在拥挤的城市区域找到自己的车辆,或在繁忙的空间中找到方向。

打造基于位置的 AR 体验

您可以使用 Geospatial API 打造富有吸引力的用户体验,提供实用且令人愉悦的服务,而无需构建和维护多个地点的地图。让用户沉浸在一切皆有可能的虚拟世界中。

游戏和自我表达

借助 Geospatial API,您的用户可以将地球变成一块发挥创意的画布。例如,借助气球爆破,用户可以在现实世界中将气球作为目标放置,并尝试使用可响应世界空间中距离的启用物理特性的球来将其炸破。附近的用户可以通过简单的 Firebase 实现加入该体验,并炸开相同的气球。借助 Pocket Garden,用户可以用色彩缤纷的 AR 社区花园装点自己的社区,在真实世界中精确放置种子,种植藤蔓、蓬松的多肉植物等。Balloon Pop 和 Pocket Garden 都是开源的,可供您启动自己的创意之旅。

设备兼容性

少数受 ARCore 支持的设备不支持 Geospatial API。这些设备在 “支持 ARCore 的设备”页面上有所说明。

后续步骤