# Use of maps * [Overview](#overview) * [Local development with MapTiler](#local-development-with-maptiler) * [Making releasable builds with MapTiler](#making-releasable-builds-with-maptiler) * [Using other map sources or MapTiler styles](#using-other-map-sources-or-maptiler-styles) ## Overview Element Android uses [MapTiler](https://www.maptiler.com/) to provide map imagery where required. MapTiler requires an API key, which we bake in to the app at release time. ## Local development with MapTiler If you're developing the application and want maps to render properly you can sign up for the [MapTiler free tier](https://www.maptiler.com/cloud/pricing/). Place your API key in `local.properties` with the key `services.maptiler.apikey`, e.g.: ```properties services.maptiler.apikey=abCd3fGhijK1mN0pQr5t ``` Optionally you can also place your custom MapTyler style ids for light and dark maps in the `local.properties` with the keys `services.maptiler.lightMapId` and `services.maptiler.darkMapId`. If you don't specify these, the default MapTiler "basic-v2" styles will be used. ## Making releasable builds with MapTiler To insert the MapTiler API key when building an APK, set the `ELEMENT_ANDROID_MAPTILER_API_KEY` environment variable in your build environment. If you've added custom styles also set the `ELEMENT_ANDROID_MAPTILER_LIGHT_MAP_ID` and `ELEMENT_ANDROID_MAPTILER_DARK_MAP_ID` environment variables accordingly. ## Using other map sources or MapTiler styles If you wish to use an alternative map provider, you can provide your own implementations of `TileServerStyleUriBuilder` and `StaticMapUrlBuilder` in `features/location/api/src/main/kotlin/io/element/android/features/location/api/internal/`.