gitextract_n5gon859/ ├── .gitignore ├── LICENSE ├── Readme.md ├── build.gradle ├── demo/ │ ├── .gitignore │ ├── build.gradle │ ├── proguard-rules.pro │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ ├── assets/ │ │ │ └── tracks/ │ │ │ ├── track1.txt │ │ │ ├── track2.txt │ │ │ └── track3.txt │ │ ├── java/ │ │ │ └── ovh/ │ │ │ └── plrapps/ │ │ │ └── mapcompose/ │ │ │ └── demo/ │ │ │ ├── MainActivity.kt │ │ │ ├── providers/ │ │ │ │ └── TileStreamProviderFactory.kt │ │ │ ├── ui/ │ │ │ │ ├── MapComposeDemoApp.kt │ │ │ │ ├── NavGraph.kt │ │ │ │ ├── screens/ │ │ │ │ │ ├── AddingMarkerDemo.kt │ │ │ │ │ ├── AnimationDemo.kt │ │ │ │ │ ├── CalloutDemo.kt │ │ │ │ │ ├── CenteringOnMarkerDemo.kt │ │ │ │ │ ├── CustomDraw.kt │ │ │ │ │ ├── Home.kt │ │ │ │ │ ├── HttpTilesDemo.kt │ │ │ │ │ ├── InfiniteScrollDemo.kt │ │ │ │ │ ├── LayersDemo.kt │ │ │ │ │ ├── MarkersClusteringDemo.kt │ │ │ │ │ ├── MarkersLazyLoadingDemo.kt │ │ │ │ │ ├── OsmDemo.kt │ │ │ │ │ ├── PathsDemo.kt │ │ │ │ │ ├── RotationDemo.kt │ │ │ │ │ ├── SimpleDemo.kt │ │ │ │ │ └── VisibleAreaPaddingDemo.kt │ │ │ │ ├── theme/ │ │ │ │ │ ├── Color.kt │ │ │ │ │ ├── Theme.kt │ │ │ │ │ └── Type.kt │ │ │ │ └── widgets/ │ │ │ │ ├── Callout.kt │ │ │ │ └── Marker.kt │ │ │ ├── utils/ │ │ │ │ ├── Metrics.kt │ │ │ │ ├── Random.kt │ │ │ │ └── WebMercator.kt │ │ │ └── viewmodels/ │ │ │ ├── AddingMarkerVM.kt │ │ │ ├── AnimationDemoVM.kt │ │ │ ├── CalloutVM.kt │ │ │ ├── CenteringOnMarkerVM.kt │ │ │ ├── CustomDrawVM.kt │ │ │ ├── HttpTilesVM.kt │ │ │ ├── InfiniteScrollVM.kt │ │ │ ├── LayersVM.kt │ │ │ ├── MarkersClusteringVM.kt │ │ │ ├── MarkersLazyLoadingVM.kt │ │ │ ├── OsmVM.kt │ │ │ ├── PathsVM.kt │ │ │ ├── RotationVM.kt │ │ │ ├── SimpleDemoVM.kt │ │ │ └── VisibleAreaPaddingVM.kt │ │ └── res/ │ │ ├── drawable/ │ │ │ ├── ic_launcher_background.xml │ │ │ └── map_marker.xml │ │ ├── drawable-v24/ │ │ │ └── ic_launcher_foreground.xml │ │ ├── mipmap-anydpi-v26/ │ │ │ ├── ic_launcher.xml │ │ │ └── ic_launcher_round.xml │ │ └── values/ │ │ ├── colors.xml │ │ ├── strings.xml │ │ └── themes.xml │ └── test/ │ └── java/ │ └── ovh/ │ └── plrapps/ │ └── mapcompose/ │ └── demo/ │ └── utils/ │ └── WebMercatorTest.kt ├── doc/ │ └── mapcompose/ │ └── MapCompose.drawio ├── gradle/ │ ├── gradle-daemon-jvm.properties │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── mapcompose/ │ ├── build.gradle │ ├── gradle.properties │ └── src/ │ ├── main/ │ │ ├── AndroidManifest.xml │ │ └── java/ │ │ └── ovh/ │ │ └── plrapps/ │ │ └── mapcompose/ │ │ ├── api/ │ │ │ ├── Annotation.kt │ │ │ ├── ApiDefaults.kt │ │ │ ├── Common.kt │ │ │ ├── DefaultCanvas.kt │ │ │ ├── GesturesApi.kt │ │ │ ├── LayerApi.kt │ │ │ ├── LayoutApi.kt │ │ │ ├── MarkerApi.kt │ │ │ ├── Model.kt │ │ │ ├── PathApi.kt │ │ │ ├── RenderApi.kt │ │ │ └── UtilsApi.kt │ │ ├── core/ │ │ │ ├── ColorFilterProvider.kt │ │ │ ├── Debounce.kt │ │ │ ├── GestureConfiguration.kt │ │ │ ├── Layer.kt │ │ │ ├── Throttle.kt │ │ │ ├── Tile.kt │ │ │ ├── TileCollector.kt │ │ │ ├── TileStreamProvider.kt │ │ │ ├── Viewport.kt │ │ │ └── VisibleTilesResolver.kt │ │ ├── ui/ │ │ │ ├── MapUI.kt │ │ │ ├── gestures/ │ │ │ │ ├── GestureDetector.kt │ │ │ │ ├── TapGestureDetector.kt │ │ │ │ └── model/ │ │ │ │ └── HitType.kt │ │ │ ├── layout/ │ │ │ │ ├── MinimumScaleMode.kt │ │ │ │ ├── Rendering.kt │ │ │ │ └── ZoomPanRotate.kt │ │ │ ├── markers/ │ │ │ │ ├── Clusterer.kt │ │ │ │ ├── LazyLoader.kt │ │ │ │ ├── MarkerComposer.kt │ │ │ │ └── MarkerLayout.kt │ │ │ ├── paths/ │ │ │ │ ├── PathComposer.kt │ │ │ │ ├── RamerDouglaPeucker.kt │ │ │ │ └── model/ │ │ │ │ ├── Cap.kt │ │ │ │ └── PatternItem.kt │ │ │ ├── state/ │ │ │ │ ├── MapState.kt │ │ │ │ ├── PathState.kt │ │ │ │ ├── TileCanvasState.kt │ │ │ │ ├── ZoomPanRotateState.kt │ │ │ │ └── markers/ │ │ │ │ ├── MarkerRenderState.kt │ │ │ │ ├── MarkerState.kt │ │ │ │ └── model/ │ │ │ │ ├── ClusterClickBehavior.kt │ │ │ │ ├── MarkerData.kt │ │ │ │ ├── MarkerType.kt │ │ │ │ └── RenderingStrategy.kt │ │ │ └── view/ │ │ │ └── TileCanvas.kt │ │ └── utils/ │ │ ├── AnimUtils.kt │ │ ├── ApiUtils.kt │ │ ├── BoundingBoxUtils.kt │ │ ├── Collections.kt │ │ ├── Dp.kt │ │ ├── Flow.kt │ │ ├── Geometry.kt │ │ ├── Point.kt │ │ ├── RotationUtils.kt │ │ └── VisibleAreaUtils.kt │ └── test/ │ └── java/ │ └── ovh/ │ └── plrapps/ │ └── mapcompose/ │ ├── core/ │ │ ├── TileCollectorTest.kt │ │ └── VisibleTilesResolverTest.kt │ ├── state/ │ │ └── TileCanvasStateTest.kt │ ├── ui/ │ │ └── paths/ │ │ └── PathComposerTest.kt │ └── utils/ │ ├── GeometryTest.kt │ └── VisibleAreaUtilsTest.kt ├── settings.gradle └── testapp/ ├── .gitignore ├── build.gradle ├── proguard-rules.pro └── src/ ├── main/ │ ├── AndroidManifest.xml │ ├── java/ │ │ └── ovh/ │ │ └── plrapps/ │ │ └── mapcompose/ │ │ └── testapp/ │ │ ├── MainActivity.kt │ │ ├── core/ │ │ │ └── ui/ │ │ │ ├── MapComposeTestApp.kt │ │ │ ├── nav/ │ │ │ │ └── NavDestinations.kt │ │ │ └── theme/ │ │ │ ├── Color.kt │ │ │ ├── Theme.kt │ │ │ └── Type.kt │ │ ├── features/ │ │ │ ├── clustering/ │ │ │ │ ├── MarkerClusteringUi.kt │ │ │ │ └── MarkersClusteringViewModel.kt │ │ │ ├── home/ │ │ │ │ └── Home.kt │ │ │ └── layerswitch/ │ │ │ ├── LayerSwitchTest.kt │ │ │ └── LayerSwitchViewModel.kt │ │ └── utils/ │ │ └── Random.kt │ └── res/ │ ├── drawable/ │ │ ├── ic_launcher_background.xml │ │ └── map_marker.xml │ ├── drawable-v24/ │ │ └── ic_launcher_foreground.xml │ ├── mipmap-anydpi-v26/ │ │ ├── ic_launcher.xml │ │ └── ic_launcher_round.xml │ └── values/ │ ├── colors.xml │ ├── strings.xml │ └── themes.xml └── test/ └── java/ └── ovh/ └── plrapps/ └── mapcompose/ └── testapp/ └── ExampleUnitTest.kt