Library SKAMIR Maps (the library) builds on top of MapLibre Native libraries. One for iOS and one for Android. Using kotlin interop it was possible to link toward the native libraries without modifying their source code.
The use of external dependencies is being kept at minimum.
This Samples repository serves as a public documentation of capabilities of the library.
To get access to the library itself (free of charge) just fill out the following questionaire and further instructions will be provided.
-
Apple computer to run thise sample app on your Apple device.
-
Knowledge of Compose is necessary
-
It helps if you have basic understanding of how MapLibre works and that you have to use a tile server to show tiles on the map.
This samples repository uses MapTiler as a tile provider. You have to request an API key from MapTiler. Please remove_template
suffix from the following filenameskamirmaps-samples/src/commonMain/kotlin/sk/amir/maps/samples/MapApiKey.kt_template
and fill in your own MapTilerApi key in there.If you prefer another tile provider, just modify the style urls in (
skamirmaps-samples/src/commonMain/kotlin/sk/amir/maps/samples/Configuration.kt
).
Many features have been developed. For some of them I have created an article on my blog.
- Features:
- Circle
- Symbol(icon + text)
- Line
- Fill
- style switching - possible dark mode
- Camera control
- Controlling map settings
- Features are ordered bysed on order of composable calls. No z-indices are necessary anymore! (yaay)
The library builds on top of MapLibre Native. And most of the great hard work has been done by MapLibre Native maintainers. However this project is NOT affiliated with MapLibre Native project. And also big thanks goes to developers of Compose Multiplatform and Compose Runtime itself.
My name is Amir Hammad, I'm based in Amsterdam, Netherlands and I'm the creator and currently the sole maintainer of the library and of this repository. You can reach me at [email protected] or at Linked in
This sample repository is licensed under MIT license. See LICENSE file for more info.