Superdev.Maui.Maps 1.0.23

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Superdev.Maui.Maps --version 1.0.23
                    
NuGet\Install-Package Superdev.Maui.Maps -Version 1.0.23
                    
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.0.23" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Superdev.Maui.Maps" Version="1.0.23" />
                    
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.0.23
                    
#r "nuget: Superdev.Maui.Maps, 1.0.23"
                    
#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.0.23
                    
#: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.0.23
                    
Install as a Cake Addin
#tool nuget:?package=Superdev.Maui.Maps&version=1.0.23
                    
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}"
    CenterPosition="{Binding MapCenter, Mode=TwoWay}"
    ZoomLevel="{Binding MapZoom, Mode=TwoWay}"
    IsReadonly="False"
    IsTrafficEnabled="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.

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 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  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.1.13-pre 711 12/2/2025
1.1.11-pre 662 12/1/2025
1.1.10-pre 576 12/1/2025
1.1.8-pre 203 11/25/2025
1.1.7-pre 197 11/24/2025
1.1.6-pre 318 11/21/2025
1.1.3-pre 328 11/21/2025
1.1.1-pre 398 11/19/2025
1.1.0-pre 394 11/19/2025
1.0.25-pre 186 11/25/2025
1.0.23 241 11/14/2025
1.0.21-pre 291 11/12/2025
1.0.20-pre 297 11/11/2025
1.0.19-pre 230 11/10/2025
1.0.18 156 11/8/2025
1.0.16-pre 139 11/8/2025
1.0.14-pre 205 11/6/2025
1.0.12-pre 194 11/6/2025
1.0.11-pre 190 11/5/2025
1.0.10-pre 187 11/5/2025
1.0.9-pre 196 11/5/2025
1.0.8-pre 201 10/30/2025
1.0.7-pre 196 10/30/2025
1.0.6-pre 195 10/29/2025

1.0
- Initial release.