Получить все направления, используя Bing Map SDK в UWP
Можно ли получить все направления движения с указанным местоположением ОТ и ОТ в UWP, используя Bing Map SDK? (так же, как приложение карты Windows 10)
1 ответ
Да: Получить маршрут или маршрут для вождения или прогулки, вызвав методы класса MapRouteFinder, например, GetDrivingRouteAsync или GetWalkingRouteAsync. Объект MapRouteFinderResult содержит объект MapRoute, доступ к которому осуществляется через его свойство Route.
Когда вы запрашиваете маршрут, вы можете указать следующие вещи: • Вы можете указать только начальную точку и конечную точку, или вы можете указать ряд путевых точек для расчета маршрута. • Вы можете указать оптимизации - например, минимизировать расстояние. • Вы можете указать ограничения - например, избегать автомагистралей.
Вы можете использовать пример кода как этот:
private async void GetRouteAndDirections()
{
// Start at Microsoft in Redmond, Washington.
BasicGeoposition startLocation = new BasicGeoposition();
startLocation.Latitude = 47.643;
startLocation.Longitude = -122.131;
Geopoint startPoint = new Geopoint(startLocation);
// End at the city of Seattle, Washington.
BasicGeoposition endLocation = new BasicGeoposition();
endLocation.Latitude = 47.604;
endLocation.Longitude = -122.329;
Geopoint endPoint = new Geopoint(endLocation);
// Get the route between the points.
MapRouteFinderResult routeResult =
await MapRouteFinder.GetDrivingRouteAsync(
startPoint,
endPoint,
MapRouteOptimization.Time,
MapRouteRestrictions.None);
if (routeResult.Status == MapRouteFinderStatus.Success)
{
// Display summary info about the route.
tbOutputText.Inlines.Add(new Run()
{
Text = "Total estimated time (minutes) = "
+ routeResult.Route.EstimatedDuration.TotalMinutes.ToString()
});
tbOutputText.Inlines.Add(new LineBreak());
tbOutputText.Inlines.Add(new Run()
{
Text = "Total length (kilometers) = "
+ (routeResult.Route.LengthInMeters / 1000).ToString()
});
tbOutputText.Inlines.Add(new LineBreak());
tbOutputText.Inlines.Add(new LineBreak());
// Display the directions.
tbOutputText.Inlines.Add(new Run()
{
Text = "DIRECTIONS"
});
tbOutputText.Inlines.Add(new LineBreak());
foreach (MapRouteLeg leg in routeResult.Route.Legs)
{
foreach (MapRouteManeuver maneuver in leg.Maneuvers)
{
tbOutputText.Inlines.Add(new Run()
{
Text = maneuver.InstructionText
});
tbOutputText.Inlines.Add(new LineBreak());
}
}
}
else
{
tbOutputText.Text =
"A problem occurred: " + routeResult.Status.ToString();
}
}
Более подробная информация здесь: https://msdn.microsoft.com/en-us/library/windows/apps/xaml/dn631250.aspx