Android NDK (C)
Unity (AR Foundation)
The ARCore Geospatial API enables you to remotely attach content to any area covered by Google Street View and create AR experiences on a global scale. It uses device sensor and GPS data to detect the device's environment, then matches the recognizable parts of that environment to a localization model provided by Google’s Visual Positioning System (VPS) to determine the precise location of a user’s device. The API also takes care of merging the user’s local coordinates with the geographic coordinates from VPS so that you can work within a single coordinate system.
Global localization with VPS
Street View images from Google Maps, which have been captured around the globe for more than 15 years, are the foundation of VPS. Deep neural networks identify and describe parts of the images that are likely to be recognizable over long periods of time. Those parts are then combined across tens of billions of images to compute a 3D point cloud of the global environment. This localization model consists of trillions of points and spans nearly all countries, with future coverage.
When the user’s device makes a request to the Geospatial API, a neural network processes the pixels to find recognizable parts of the user’s environment and matches them to the VPS localization model. Computer vision algorithms then compute the position and orientation of the device, offering a location that is much more accurate than what was previously possible with GPS alone.
Placing anchors with the Geospatial API
When placing anchors, other ARCore APIs such as the ARCore Cloud Anchor API also use image maps to determine a device’s pose. However, the image maps created by these APIs are local because they explicitly need to map a space.
The Geospatial API provides for an anchor's horizontal (latitude and longitude) and vertical (altitude) positions following the WGS84 specification. You can place a Geospatial anchor almost anywhere in the world at a given latitude, longitude and altitude without needing to manually map the space.
Types of Geospatial Anchors
There are three types of Geospatial Anchors which can be used to attach content to a real-world locations. WGS84 anchors represent a location at a given latitude, longitude, and altitude relative to the WGS84 ellipsoid. Terrain anchors represent a location at a given latitude, longitude, and an elevation relative to the ground or floor. Rooftop anchors represent a location at a given altitaude, longitude, and an elevation relative to the top of a building. Read more about them in the developer guides.
Use cases for developing with the Geospatial API
Here are some ways you can use the Geospatial API in your own projects.
Guide users to specific locations
GPS is great for building location-based experiences, but the accuracy can be off when you need to build AR experiences that are exact and precise. With the Geospatial API, you won’t have to worry about your virtual objects jumping around. You can explicitly map place of interest to attach content to it and reliably localize against it, enabling users to find their cars in dense urban areas, or find their way around busy spaces.
Create location-based AR experiences
You can create compelling user experiences with the Geospatial API that provide utility and delight without needing to build and maintain maps of multiple locations. Immerse your users in a virtual world where anything is possible.
Gaming and self-expression
With the Geospatial API, your users can turn the globe into a canvas for creativity. For example, Balloon Pop lets a user place balloons as targets in the real world and try to pop them using a physics-enabled ball that reacts to distance in world space. Nearby users can join the experience and pop the same balloons via a simple Firebase implementation. With Pocket Garden, a user can adorn their neighborhood with a colorful AR community garden, accurately placing seeds across the real world at scale, planting vines, puffy succulents, and more. Both Balloon Pop and Pocket Garden are open sourced and available to you for bootstrapping your own creativity.
A small number of ARCore supported devices do not support the Geospatial API. These devices are indicated on the ARCore supported devices page.