IGeolocation, MAUI Maps, pins, MapSpan.
Getting the User's Location
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
<maps:Map x:Name="MyMap" MapType="Street" IsShowingUser="True" />
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