Compass 🧭
GithubReferenceMaven
  • 🧭Compass
  • 🖥️Artifacts
  • 🚗Roadmap
  • Setup
    • 📇All Dependencies
    • 🤖Android / iOS
    • 📱Mixed platforms
  • Geocoding
    • 🌎Geocoding Overview
    • 📈Web API Service
      • Google Maps
      • Mapbox
    • ❓Request a Geocoder API
  • Geolocation
    • 📍Geolocation Overview
    • 🔍Geolocator
    • 🌐Location
    • 📱Android / iOS
    • 🖥️Browser
  • Autocomplete
    • 🔍Autocomplete Overview
    • 🌎Via Geocoding
      • 📱Android / iOS
      • 📈Web API Service
  • Misc
    • 📲Demo
    • 💾Contributing
    • 🔧Compass Reference
Powered by GitBook
On this page

Was this helpful?

Edit on GitHub
  1. Geolocation

Geolocation Overview

Geolocation includes the following features:

  • Track a user's location

  • Get the current location

  • Customize the accuracy of the tracking

  • Android and iOS support, using built-in services.

  • Built-in Location permission handling

Built-in services are used for Android and iOS. That means that there is restrictions to its usage.

Quickstart

Include the required dependencies for your targets, see All Dependencies.

Create the Geolocator

Creating a geolocator depends on your platform, but in the simplest use-case of an Android & iOS only targets. You can do something like this:

val geolocator: Geolocator = Geolocator.mobile()

Get current location

Getting the current location is simple, just call:

val result: GeolocatorResult = geolocator.current()
// Handle the result:

when (result) {
    is GeolocatorResult.Success -> {
        // Do something with result.location
    }
    is GeolocatorResult.Error -> when(result) {
        is GeolocatorResult.NotSupported -> TODO()
        is GeolocatorResult.NotFound -> TODO()
        is GeolocatorResult.PermissionError -> TODO()
        is GeolocatorResult.GeolocationFailed -> TODO()
    }
}

Or if you only care about the result:

val location: Location? = geolocator.currentOrNull()

Compass will handle asking the user for while-in-use location permissions. If they deny the permission then the result will be PermissionError. If the user has denied the permission permanently, you will need to prompt the user to open the settings.

PreviousRequest a Geocoder APINextGeolocator

Last updated 1 year ago

Was this helpful?

📍