Introduce GroundImage, and refactor architecture - #60
Merged
Conversation
…merged main into current branch.
…image on touch event
…ers are not yet linked with bounds, but committing as instructed.
…oes not occur, committing current state.
- Extract abstract marker controller and render interfaces - Replace concrete MarkerController with AbstractMarkerController - Add provider-specific marker controller implementations for all map SDKs - Rename MapViewState files to *Impl.kt for consistency - Remove deprecated marker implementation files
- Create AbstractPolylineController.kt with unified controller logic - Create AbstractPolylineOverlayRenderer.kt as base renderer class - Implement provider-specific controllers for Google Maps, Mapbox, HERE, and ArcGIS - Replace overlay manager pattern with controller architecture - Remove deprecated polyline renderer implementations - Update all MapViewController classes to use new controller pattern
Add fill opacity and stroke width sliders to polygon and circle examples, refactor ViewModels to use remember pattern, and improve component state management
…ample markers are dragged.
Standardizes all overlay types (circles, polygons, polylines, ground images) to use the new overlay renderer pattern across all map providers, improving consistency and maintainability.
# Conflicts: # README.md # example-app/src/main/java/com/mapconductor/example/DemoAppScreen.kt # example-app/src/main/java/com/mapconductor/example/MapViewContainer.kt # example-app/src/main/java/com/mapconductor/example/navigation/NavigationViewModel.kt # example-app/src/main/java/com/mapconductor/example/pages/animation/AnimationMapPage.kt # example-app/src/main/java/com/mapconductor/example/pages/animation/AnimationPageViewModel.kt # example-app/src/main/java/com/mapconductor/example/pages/circle/CircleMapComponent.kt # example-app/src/main/java/com/mapconductor/example/pages/groundimage/GroundImageMapPage.kt # example-app/src/main/java/com/mapconductor/example/pages/mapDesign/MapDesignMapComponent.kt # example-app/src/main/java/com/mapconductor/example/pages/mapDesign/MapDesignMapPage.kt # example-app/src/main/java/com/mapconductor/example/pages/mapDesign/MapDesignPageViewModel.kt # mapconductor-core/src/main/java/com/mapconductor/core/OverlayProvider.kt # mapconductor-core/src/main/java/com/mapconductor/core/controller/MapViewController.kt # mapconductor-core/src/main/java/com/mapconductor/core/groundimage/GroundImage.kt # mapconductor-core/src/main/java/com/mapconductor/core/groundimage/GroundImageController.kt # mapconductor-core/src/main/java/com/mapconductor/core/groundimage/GroundImageOverlay.kt # mapconductor-core/src/main/java/com/mapconductor/core/map/MapViewBase.kt # mapconductor-core/src/main/java/com/mapconductor/core/map/MapViewState.kt # mapconductor-core/src/main/java/com/mapconductor/core/marker/MarkerRenderer.kt # mapconductor-for-arcgis/src/main/java/com/mapconductor/arcgis/ArcGISMapView.kt # mapconductor-for-arcgis/src/main/java/com/mapconductor/arcgis/ArcGISMapViewController.kt # mapconductor-for-arcgis/src/main/java/com/mapconductor/arcgis/ArcGISMapViewStateImpl.kt # mapconductor-for-googlemaps/src/main/java/com/mapconductor/googlemaps/GoogleMapTypeAlias.kt # mapconductor-for-googlemaps/src/main/java/com/mapconductor/googlemaps/GoogleMapView.kt # mapconductor-for-googlemaps/src/main/java/com/mapconductor/googlemaps/GoogleMapViewController.kt # mapconductor-for-googlemaps/src/main/java/com/mapconductor/googlemaps/GoogleMapViewControllerStore.kt # mapconductor-for-googlemaps/src/main/java/com/mapconductor/googlemaps/GoogleMapViewStateImpl.kt # mapconductor-for-here/src/main/java/com/mapconductor/here/HereMapView.kt # mapconductor-for-here/src/main/java/com/mapconductor/here/HereMapViewController.kt # mapconductor-for-here/src/main/java/com/mapconductor/here/HereViewStateImpl.kt # mapconductor-for-mapbox/src/main/java/com/mapconductor/mapbox/MapboxMapView.kt # mapconductor-for-mapbox/src/main/java/com/mapconductor/mapbox/MapboxMapViewController.kt # mapconductor-for-mapbox/src/main/java/com/mapconductor/mapbox/MapboxViewStateImpl.kt
wf9a5m75
added a commit
that referenced
this pull request
Nov 28, 2025
* TempSave * TempSave3 * Resolve merge conflicts. * WIP: GroundImage bounds change detection in progress. * WIP: GroundImage rendered; modification handling not yet done. * Add support for swapping GroundImage (Google Maps API GroundOverlay) image on touch event * Impliment edit opacity slider'. * update README.md * Changes groundImageState.opacity following the slider value * Initial implementation of GroundImage (GroundOverlay). NE and SW markers are not yet linked with bounds, but committing as instructed. * WIP: GroundImage feature implementation. Known issue: recomposition does not occur, committing current state. * Fix: GroundImage does not update by following markers * Fix: GeoRectBounds.extend is incorrect * Update: Marker labels based on the relative positions * Fix: ktLint errors * Use LaunchedEffect instead of SideEffect * Fix: crash the app on displaying maps (except Google Maps) * Update: GroundImage is now selectable by controller * Rename: position property to clicked of GroundImageEvent class * Remove generic type from GroundImageCapable * Remove unused interface * Small refactoring * Refactor marker architecture to abstract pattern - Extract abstract marker controller and render interfaces - Replace concrete MarkerController with AbstractMarkerController - Add provider-specific marker controller implementations for all map SDKs - Rename MapViewState files to *Impl.kt for consistency - Remove deprecated marker implementation files * Refactor polyline architecture to abstract controller pattern - Create AbstractPolylineController.kt with unified controller logic - Create AbstractPolylineOverlayRenderer.kt as base renderer class - Implement provider-specific controllers for Google Maps, Mapbox, HERE, and ArcGIS - Replace overlay manager pattern with controller architecture - Remove deprecated polyline renderer implementations - Update all MapViewController classes to use new controller pattern * Small refactoring * wip: refactoring for polygon * wip: refactoring for polygon * wip: implementing polygon * wip: PolygonController * wip: implementing PolygonOverlayManager for Mapbox * wip: refactoring polygon * wip:reimplement Polygon for Mapbox * wip: enhance polygon and circle UI with interactive controls Add fill opacity and stroke width sliders to polygon and circle examples, refactor ViewModels to use remember pattern, and improve component state management * Fix: marker.icon.scale property does not work on ArcGIS and Google Maps SDKs * Fix: KtLint errors * Fix: Polyline.strokeWidth is incorrect on Mapbox SDK * create marker icon demo * fix: The polyline in the polyline example does not update when the example markers are dragged. * wip:fixing the flyTo demo * Fix: map.flyTo demo does not work * Use Android-NDK27 for mapbox https://docs.mapbox.com/android/ja/maps/guides/#ndk-27 * Refactor overlay architecture to use unified overlay pattern Standardizes all overlay types (circles, polygons, polylines, ground images) to use the new overlay renderer pattern across all map providers, improving consistency and maintainability. * add: firebase app distribution dependencies * merge: main branch into ground_overlay branch --------- Co-authored-by: KouTsukigase <kou.tsukigase@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Key Features
Implementation Details
GroundImageStateandGroundImageControllerabstractions