MapView
Display interactive maps with pins, clusters, overlays, and custom callouts.
MapView wraps MapKit while keeping regions, pins, and overlays in SkeleKit types.
Region is two-way bindable and updates as someone pans or zooms. A region consists of a center coordinate and latitude/longitude spans; MapRegion.FromRadius is convenient when the desired extent is easier to express in meters.
Kind changes the base map. Pan, zoom, rotation, and pitch can each be enabled independently. ShowsCompass, ShowsScale, ShowsTraffic, and ShowsUserLocation control native map chrome and content. Showing user location still requires the appropriate location permission and usage description in the app.
Pins, callouts, and clustering
Pins is live when backed by an observable collection. A MapPin can use its native title, subtitle, local ImageSource icon, and tint, or build custom SkeleKit content:
Factories must return a fresh view tree whenever MapKit requests one. Set PinCommand to receive the selected MapPin as its command parameter.
Enable ClustersPins to combine nearby markers. ClusterMarker can build a view from the cluster count; leave it unset for the native counted marker.
Overlays
Overlays accepts MapPolyline, MapPolygon, and MapCircle values. All expose stroke color and width; polygons and circles can also be filled.
Replacing an overlay object's points or style does not itself notify the map. Update the observable list or replace the overlay entry when its rendered shape changes.