针对具体平台的指南
Android (Kotlin/Java)
Android NDK (C)
Unity(AR 基础)
iOS
Unreal 引擎
借助 ARCore Geospatial API,您可以将内容远程附加到 Google 街景覆盖的任何区域,打造全球范围的 AR 体验。它会使用设备传感器和 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 规范提供锚点的水平(纬度和经度)和垂直(海拔)位置。您可以在世界上几乎任何地点的给定纬度、经度和海拔高度放置地理空间锚点,而无需手动绘制空间地图。
地理空间锚点的类型
有三种类型的地理空间锚点,可用于将内容附加到 真实地点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 支持的设备页面上列出了这些设备。
后续步骤
- 观看 VPS 和 ARCore Geospatial API 的 I/O 讲座,其中更详细地展示了 Geospatial API 及其功能。
- 探索 Balloon Pop 和 Pocket Garden,这两个利用 Geospatial API 的开源示例应用。