This is the standalone native SDK, for apps not built with Flutter. If your
app is built with Flutter, use the Flutter SDK
instead. A native iOS SDK (Swift) is coming soon.
Quickstart
Three steps to a working map, plus the example screen.
The map
Work areas, layers, drawing, events, the controller, and styling.
Frames
Initialise with a key and preload frames. The part that uses this API.
Flutter SDK
Building with Flutter? The Flutter SDK is the
same map, driven from Dart.
Install
Add the dependency to your app module.app/build.gradle.kts
DataFromMap out, built-in
controls or your own, and a plain Kotlin API. No map key is needed for the
map to render; the only credential you supply is an API key, and only if you
use frames.
Platform setup
Requirements
- Minimum Android 5.0 (API 21).
Location permission
The map uses the device location for geofencing and Locate Me. Declare the permissions, and requestACCESS_FINE_LOCATION at run time before the
map is used.
AndroidManifest.xml
SurveyActivity.kt
Lifecycle
- Create the
LociMapViewinonCreateand callrelease()inonDestroy. - Use the view and the controller on the main thread. Events arrive on it.
Two ways to use it
Both use the same view properties and callbacks. Your own buttons call commands onview.controller.
Prebuilt view
LociMapView draws the map and the controls — options, locate, zoom,
undo, redo, work areas, imagery, navigate, Draw and Save. Rename, hide or
replace any of them.Your own
Set
controls = LociMapControls.NONE and call commands on
view.controller from your own buttons.prebuilt
your own buttons
What the map needs, and what it does not
- No map key to render. The map works out of the box.
- An API key only if you preload frames from LOCI. See Frames.
- The location permission, granted at run time before the map is used.

