📱 Device Features
Maps & Geolocation
IGeolocation, MAUI Maps, pins, MapSpan.

Getting the User's Location

csharp
public async Task<Location?> GetLocationAsync()
{
    var status = await Permissions.RequestAsync<Permissions.LocationWhenInUse>();
    if (status != PermissionStatus.Granted) return null;

    return await Geolocation.Default.GetLocationAsync(new GeolocationRequest
    {
        DesiredAccuracy = GeolocationAccuracy.Medium,
        Timeout = TimeSpan.FromSeconds(10)
    });
}

Displaying a Map with Pins

xml
<maps:Map x:Name="MyMap" MapType="Street" IsShowingUser="True" />
csharp
var london = new Location(51.5074, -0.1278);
MyMap.MoveToRegion(MapSpan.FromCenterAndRadius(london, Distance.FromKilometers(5)));

MyMap.Pins.Add(new Pin
{
    Label    = "London Eye",
    Location = london,
    Type     = PinType.Place
});

Key Takeaways

Request LocationWhenInUse permission before calling Geolocation
GeolocationAccuracy.Medium balances accuracy and battery drain
Add .UseMauiMaps() in MauiProgram.cs and supply a Google Maps API key
MapSpan.FromCenterAndRadius sets the initial map viewport
Lesson 28 of 30Device Features
← Previous Next Lesson →