Skip to content
This repository has been archived by the owner on Nov 5, 2024. It is now read-only.

Compose Multiplatform wrapper to work with maps

License

Notifications You must be signed in to change notification settings

skamirmaps/skamirmaps-samples

Repository files navigation

SKAMIR Maps - Compose Multiplatform wrapper to work with maps

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.

! This project has a dependency on SKAMIR Maps (The library)

To get access to the library itself (free of charge) just fill out the following questionaire and further instructions will be provided.

Request access ->

Requirements

  • 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 filename skamirmaps-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).

Features

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)

Acknowledgement

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.

Developer

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

License

This sample repository is licensed under MIT license. See LICENSE file for more info.