Superdev.Maui.Maps 1.2.10

Prefix Reserved
dotnet add package Superdev.Maui.Maps --version 1.2.10
                    
NuGet\Install-Package Superdev.Maui.Maps -Version 1.2.10
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Superdev.Maui.Maps" Version="1.2.10" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Superdev.Maui.Maps" Version="1.2.10" />
                    
Directory.Packages.props
<PackageReference Include="Superdev.Maui.Maps" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Superdev.Maui.Maps --version 1.2.10
                    
#r "nuget: Superdev.Maui.Maps, 1.2.10"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Superdev.Maui.Maps@1.2.10
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Superdev.Maui.Maps&version=1.2.10
                    
Install as a Cake Addin
#tool nuget:?package=Superdev.Maui.Maps&version=1.2.10
                    
Install as a Cake Tool

Superdev.Maui.Maps

Version Downloads Buy Me a Coffee

Download and Install Superdev.Maui.Maps

This library is available on NuGet: https://www.nuget.org/packages/Superdev.Maui.Maps Use the following command to install Superdev.Maui.Maps using NuGet package manager console:

PM> Install-Package Superdev.Maui.Maps

You can use this library in any .NET MAUI project compatible to .NET 9 and higher.

App Setup

  1. This plugin provides an extension method for MauiAppBuilder UseSuperdevMauiMaps which ensure proper startup and initialization. Call this method within your MauiProgram just as demonstrated in the MapsDemoApp:
    var builder = MauiApp.CreateBuilder()
        .UseMauiApp<App>()
        .UseSuperdevMauiMaps();
    
  2. tbd

Sample App

In the Samples folder of this repository, you will find the MapsDemoApp, which demonstrates the features of Superdev.Maui.Maps. To debug, clone the repository and run the sample app directly in your development environment.

API Usage

The following documentation guides you through the most important use cases of this library.
Not all aspects are covered. If you think there is something important missing here, feel free to open a new issue.

This documentation only demonstrates the use of Superdev.Maui.Maps within a XAML and MVVM-based app. Of course, the code also works in C# and code-behind UIs.

Map 🗺

The Map control is the core component of Superdev.Maui.Maps.
Superdev.Maui.Maps.Controls.Map replaces the well-known Microsoft.Maui.Controls.Maps.Map and extends it with additional bindable properties, MVVM-friendly features, and additional functionality for templated pins, two-way map region binding, and custom interaction handling.

You can use Map directly in XAML and bind to its properties like any other MAUI control. Don't forget to import the correct XAML namespace alias in order to use the map controls of this library.

xmlns:m="http://Superdev.Maui.Maps"

Example:

<m:Map
    ItemsSource="{Binding Locations}"
    SelectedItem="{Binding SelectedLocation, Mode=TwoWay}"
    VisibleRegion="{Binding VisibleRegion, Mode=TwoWay}"
    IsShowingUser="True" />
Bindable Properties
Property Description
IsShowingUser Shows an indicator for the user’s current location. (Default: false)
IsScrollEnabled Enables or disables scrolling/panning by user input. (Default: true)
IsZoomEnabled Enables or disables zooming by user input. (Default: true)
IsRotateEnabled Enables or disables rotation of the map by user input. (Default: true)
IsTiltEnabled Enables or disables tilting by user input. (Default: true)
IsTrafficEnabled Displays a live traffic overlay. (Default: false)
MapType Defines the visual style of the map (Street, Satellite, Hybrid, etc.).
IsReadonly Makes the map pins non-interactive when true. (Default: false)
CenterPosition Sets or tracks the center Location of the map. Changing this property moves the map's viewport.
ZoomLevel Defines the zoom level as a Distance. (Default: default(Distance))
VisibleRegion Defines the visible region (MapSpan) of the map (center + radius). You can either use CenterPosition + ZoomLevel to specify the current map position or you can use VisibleRegion to do so.
ItemsSource The data collection used to generate pins. Don't forget to specify an ItemTemplate or an ItemTemplateSelector to display pins.
SelectedItem Two-way: the currently selected item from the ItemsSource.
ItemTemplate Template used to render each element in ItemsSource.
ItemTemplateSelector Template selector used to dynamically choose templates.
MapElements Collection of visual map overlays (pins, polylines, polygons, etc.) currently attached to the map.
MapClicked Event raised whenever the user taps on the map surface (not on a pin or element). Provides the tapped Location in MapClickedEventArgs as event args.
MapClickedCommand Command executed whenever the user taps on the map surface (not on a pin or element). Provides the tapped Location in MapClickedEventArgs as command parameter.
DeselectSelectedItemOnMapClick When true, clicking an empty area of the map automatically clears the current SelectedItem. (Default: false)

Pin 📍

The Pin control represents a map marker. Superdev.Maui.Maps extends the default Microsoft.Maui.Controls.Maps.Pin with additional bindable properties to support custom icons, anchor positioning, selection tracking, and command binding for marker interactions.

Example:

<m:Pin
    Label="{Binding Name}"
    Location="{Binding Coordinates}"
    ImageSource="{Binding Icon}"
    MarkerClickedCommand="{Binding PinClickedCommand}" />
Bindable Properties
Property Description
ImageSource Custom: image or icon shown for this pin. Supports any MAUI ImageSource.
Anchor Custom: defines the anchor point of the pin image (e.g., 0.5, 1.0 anchors at the bottom center). (Default: 0.5, 0.5)
MarkerClickedCommand Custom: command executed when the user taps the pin.
IsSelected Custom: indicates whether this pin is selected. One-way-to-source binding.
Address Inherited: address or description text associated with the pin.
Label Inherited: label or title displayed for the pin.
Location Inherited: geographic position (latitude/longitude).
Type Inherited: defines the type of pin (Generic, Place, etc.).

Contribution

Contributors welcome! If you find a bug or you want to propose a new feature, feel free to do so by opening a new issue on github.com.

Product Compatible and additional computed target framework versions.
.NET net9.0 is compatible.  net9.0-android was computed.  net9.0-android35.0 is compatible.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-ios18.0 is compatible.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-android36.0 is compatible.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-ios26.0 is compatible.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.2.10 102 7/18/2026
1.2.8-pre 101 7/18/2026
1.2.6-pre 120 7/16/2026
1.2.2-pre 94 7/16/2026
1.2.1-pre 96 7/16/2026
1.1.19 106 7/16/2026
1.1.17-pre 136 5/28/2026
1.1.16-pre 152 5/12/2026
1.1.15-pre 142 3/27/2026
1.1.13-pre 754 12/2/2025
1.1.11-pre 697 12/1/2025
1.1.10-pre 617 12/1/2025
1.1.8-pre 243 11/25/2025
1.1.7-pre 233 11/24/2025
1.1.6-pre 357 11/21/2025
1.1.3-pre 365 11/21/2025
1.1.1-pre 436 11/19/2025
1.0.25-pre 230 11/25/2025
Loading failed

1.2
- Add support for target framework net10.0.

1.1
- Enable nullability of reference types.
- Add extension methods: GetCenterLocation, CalculateDistance and GetVisibleRegion from a list of locations.
- Add pins to map only if Pin.Location is valid.
- Add MapClicked event and MapClickedCommand to Map.

1.0
- Initial release.