WemapPositioningSDK VPS ARCore

Highly accurate indoor positioning using ARCore and Wemap's Visual Positioning System.

Overview

This module provides a camera-based LocationSource for indoor environments where GPS is weak or unavailable. Create a VpsARCoreLocationSource from a session and assign it to a WemapMapView or GeoARView — or start it standalone for a third-party map/AR system.

import com.getwemap.sdk.positioning.wemapvpsarcore.VpsARCoreLocationSource
import com.getwemap.sdk.positioning.wemapvpsarcore.VpsConfig

// device must support ARCore
if (VpsARCoreLocationSource.checkAvailability(context).isSupported) {
val vps = VpsARCoreLocationSource(context, session, VpsConfig())
// attach once the view has loaded (see WemapMapSDK / WemapGeoARSDK — awaitLoaded()):
mapView.userLocationManager.locationSource = vps
vps.startScan()
}

VPS must be enabled for your map by the Wemap team, and requires android.permission.CAMERA in your manifest. Collect VpsARCoreLocationSource.states and VpsARCoreLocationSource.scanStatuses to guide the user through scanning.

Tunable behaviour is grouped into VpsConfig, which embeds one sub-config per subsystem.

Packages