Epic: Maps Control Improvements for .NET 11
Overview
This epic tracks improvements to the .NET MAUI Maps control for .NET 11, focusing on new functionality requested by the community and addressing feature gaps compared to native map SDKs.
Goals
Deliver the most requested community features (pin clustering, custom icons)
Expose commonly needed native capabilities (zoom level, camera events)
Improve MapElement functionality (visibility, click events, layering)
Provide better user location integration
Community Requested Features
🔥 High Priority (Most Voted)
⭐ Medium Priority
🔽 Lower Priority
Feature
Issue
Votes
Status
Notes
Separate Zoom Buttons from Gestures
#17605
3
🔲 Not Started
Android-only; could use PlatformSpecific pattern
New Features (Gaps Identified)
Quick Wins (Low Effort)
Feature
Description
Issue
Status
MapLongClicked event
Long-press/hold event on map
N/A
✅ PR Ready: #33792
MapElement.IsVisible
Show/hide elements without removing
N/A
✅ PR Ready: #33993
MapElement.ZIndex
Control draw order/layering
N/A
✅ PR Ready: #33993
XAML TypeConverters
LocationTypeConverter, MapSpanTypeConverter, Map.Region property
N/A
✅ PR Ready: #33995
Polyline.IsGeodesic
Lines follow earth curvature
TBD
🔲 Not Started
Medium Effort
Feature
Description
Issue
Status
Camera Events
CameraPositionChanged, CameraIdle, MapLoaded
TBD
🔲 Not Started
Pin.Anchor
Position custom icon relative to location
TBD
🔲 Not Started
Polyline.StrokeDashPattern
Dashed/dotted line support
TBD
🔲 Not Started
Implementation Phases
Phase 1: Quick Wins ✅ COMPLETE
Low-risk, high-value additions that can ship quickly:
Phase 2: Pin Enhancements ✅ COMPLETE
Most requested features:
Phase 3: Camera & Zoom ✅ COMPLETE
MoveToRegion(animated) overload (Add MoveToRegion(MapSpan span, bool animated) to IMap interface for non-animated map positioning. #21046 ) → PR Add MoveToRegion animation control, MapSpan.FromLocations, and fix initial map animation #33982
MapSpan.FromLocations() best-fit zoom (Provide a way to do a best fit based on a list of map pins #10718 ) → PR Add MoveToRegion animation control, MapSpan.FromLocations, and fix initial map animation #33982
Zoom level control via MoveToRegion + VisibleRegion (Provide access to current map zoom level #11332 ) → PR Add MoveToRegion animation control, MapSpan.FromLocations, and fix initial map animation #33982
Fix initial map animation (Maui island fly-in) (Add MoveToRegion(MapSpan span, bool animated) to IMap interface for non-animated map positioning. #21046 ) → PR Add MoveToRegion animation control, MapSpan.FromLocations, and fix initial map animation #33982
Camera events (CameraPositionChanged, CameraIdle, MapLoaded)
Phase 4: Info Windows ✅ COMPLETE
Phase 5: Styling ✅ COMPLETE
Phase 6: XAML Experience ✅ COMPLETE
LocationTypeConverter ("lat,lon" → Location) → PR Add XAML TypeConverters for Map coordinates (Location, MapSpan, Map.Region) #33995
MapSpanTypeConverter ("lat,lon,latDeg,lonDeg" → MapSpan) → PR Add XAML TypeConverters for Map coordinates (Location, MapSpan, Map.Region) #33995
Map.Region bindable property → PR Add XAML TypeConverters for Map coordinates (Location, MapSpan, Map.Region) #33995
Phase 7: MapElement Improvements
Phase 8: Advanced
Non-Goals (Out of Scope)
❌ Windows/WinUI Map support (tracked separately in Map for WinUI #12694 )
❌ Offline map caching (depends on native SDK limitations)
❌ Indoor maps / floor plans
❌ Turn-by-turn directions
Related Issues & PRs
Completed PRs:
Add Circle, Polygon, and Polyline click events for Map control #29101 - MapElement Click Events (Circle, Polygon, Polyline) ✅
Add MapLongClicked event to Map control #33792 - MapLongClicked Event ✅
Add UserLocationChanged event and LastUserLocation property to Map #33799 - User Location from Map (LastUserLocation, UserLocationChanged) ✅
Add Pin Clustering support for Maps #33831 - Pin Clustering ✅
Add Custom Pin Icons support for Maps #33950 - Custom Pin Icons ✅
Add MoveToRegion animation control, MapSpan.FromLocations, and fix initial map animation #33982 - Camera & Zoom (MoveToRegion animation, MapSpan.FromLocations, fix initial animation) ✅
Add Pin.ShowInfoWindow() and Pin.HideInfoWindow() methods #33985 - Show Info Window Programmatically (Pin.ShowInfoWindow(), Pin.HideInfoWindow()) ✅
Add MapStyle property for custom JSON map styling (Android) #33991 - Custom Map Styles (Android, [UnsupportedOSPlatform] for other platforms) ✅
Add MapElement.IsVisible and MapElement.ZIndex properties #33993 - MapElement IsVisible & ZIndex ✅
Add XAML TypeConverters for Map coordinates (Location, MapSpan, Map.Region) #33995 - XAML TypeConverters (LocationTypeConverter, MapSpanTypeConverter, Map.Region) ✅
Community Requests:
Success Metrics
Epic: Maps Control Improvements for .NET 11
Overview
This epic tracks improvements to the .NET MAUI Maps control for .NET 11, focusing on new functionality requested by the community and addressing feature gaps compared to native map SDKs.
Goals
Community Requested Features
🔥 High Priority (Most Voted)
⭐ Medium Priority
🔽 Lower Priority
New Features (Gaps Identified)
Quick Wins (Low Effort)
MapLongClickedeventMapElement.IsVisibleMapElement.ZIndexLocationTypeConverter,MapSpanTypeConverter,Map.RegionpropertyPolyline.IsGeodesicMedium Effort
CameraPositionChanged,CameraIdle,MapLoadedPin.AnchorPolyline.StrokeDashPatternImplementation Phases
Phase 1: Quick Wins ✅ COMPLETE
Low-risk, high-value additions that can ship quickly:
MapLongClickedevent → PR Add MapLongClicked event to Map control #33792MapElement.IsVisible→ PR Add MapElement.IsVisible and MapElement.ZIndex properties #33993MapElement.ZIndex→ PR Add MapElement.IsVisible and MapElement.ZIndex properties #33993Polyline.IsGeodesicPhase 2: Pin Enhancements ✅ COMPLETE
Most requested features:
Pin.AnchorpropertyPhase 3: Camera & Zoom ✅ COMPLETE
MoveToRegion(animated)overload (Add MoveToRegion(MapSpan span, bool animated) to IMap interface for non-animated map positioning. #21046) → PR Add MoveToRegion animation control, MapSpan.FromLocations, and fix initial map animation #33982MapSpan.FromLocations()best-fit zoom (Provide a way to do a best fit based on a list of map pins #10718) → PR Add MoveToRegion animation control, MapSpan.FromLocations, and fix initial map animation #33982CameraPositionChanged,CameraIdle,MapLoaded)Phase 4: Info Windows ✅ COMPLETE
Phase 5: Styling ✅ COMPLETE
[UnsupportedOSPlatform]for iOS/MacCatalyst/Windows)Phase 6: XAML Experience ✅ COMPLETE
LocationTypeConverter("lat,lon" → Location) → PR Add XAML TypeConverters for Map coordinates (Location, MapSpan, Map.Region) #33995MapSpanTypeConverter("lat,lon,latDeg,lonDeg" → MapSpan) → PR Add XAML TypeConverters for Map coordinates (Location, MapSpan, Map.Region) #33995Map.Regionbindable property → PR Add XAML TypeConverters for Map coordinates (Location, MapSpan, Map.Region) #33995Phase 7: MapElement Improvements
StrokeDashPatternfor PolylinePhase 8: Advanced
Non-Goals (Out of Scope)
Related Issues & PRs
Completed PRs:
LastUserLocation,UserLocationChanged) ✅Pin.ShowInfoWindow(),Pin.HideInfoWindow()) ✅[UnsupportedOSPlatform]for other platforms) ✅Community Requests:
Success Metrics