Estou utilizando o BlazorGoogleMaps NuGet Package. Você pode ver o código-fonte em: GitHub
Gostaria de poder alterar o MapType para Satellite e RoadMap durante a execução.
O código a seguir não tem impacto.
_mapOptions.MapTypeId = MapTypeId.Satellite;
_map1.Options = _mapOptions;
//give the UI Access
await InvokeAsync(StateHasChanged);
Incluí este código no método MapRoutes.razor.cs => AddDirections().
Obrigado
private async Task AddDirections()
{
_durationTotalString = null;
_distanceTotalString = null;
if (await _dirRend.GetMap() is null)
{
await _dirRend.SetMap(_map1!.InteropObject);
}
_mapOptions.MapTypeId = MapTypeId.Satellite;
_map1.Options = _mapOptions;
//give the UI Access
await InvokeAsync(StateHasChanged);
//Adding a waypoint
var waypoints = new List<DirectionsWaypoint>();
waypoints.Add(new DirectionsWaypoint() { Location = "Bethlehem, PA", Stopover = true });
//Direction Request
var dr = new DirectionsRequest();
dr.Origin = "Allentown, PA";
dr.Destination = "Bronx, NY";
dr.Waypoints = waypoints;
dr.TravelMode = TravelMode.Driving;
dr.DrivingOptions = new DrivingOptions()
{
DepartureTime = DateTime.Now.AddHours(1)
};
//Calculate Route
_directionsResult = await _dirRend.Route(dr, new DirectionsRequestOptions
{
StripLegsStepsLatLngs = false,
StripOverviewPath = false,
StripOverviewPolyline = false,
StripLegsStepsPath = false,
StripLegsSteps = false
});
if (_directionsResult is null)
{
return;
}
var routes = _directionsResult.Routes.SelectMany(x => x.Legs).ToList();
foreach (var route in routes)
{
_durationTotalString += route.DurationInTraffic?.Text;
_distanceTotalString += route.Distance.Text;
}
}
Há uma página de demonstração completa do lado do servidor mostrando a funcionalidade. Há muitas outras páginas de demonstração. https://github.com/rungwiroon/BlazorGoogleMaps/blob/master/ServerSideDemo/Pages/Maps.razor#L114