#c# #navigation #maps #windows-phone-8.1 #drive
#c# #навигация #Карты #windows-phone-8.1 #диск
Вопрос:
Мне было интересно, можно ли вызвать навигационное приложение по умолчанию в моем приложении Windows Phone 8.1. У меня есть адрес, и я хотел бы, чтобы пользователь нажал кнопку и мог перейти к этому адресу через приложение навигации по умолчанию. Если это возможно, как мне это сделать?
Спасибо за ваше время,
Йохан
Ответ №1:
Вы можете запускать пошаговые инструкции, используя схемы ms-drive-to и ms-walk-to (в зависимости от типа желаемых направлений), но сначала вам нужно получить геокоординацию для имеющегося у вас адреса. Поскольку вы ориентируетесь на Windows Phone 8.1, вы можете использовать класс MapLocationFinder в Windows.Услуги.Пространство имен Maps.
string locationName = "Empire State Building";
string address = "350 5th Avenue, New York City, New York 10018";
var locFinderResult = await MapLocationFinder.FindLocationsAsync(
address, new Geopoint(new BasicGeoposition()));
// add error checking here
var geoPos = locFinderResult.Locations[0].Point.Position;
var driveToUri = new Uri(String.Format(
"ms-drive-to:?destination.latitude={0}amp;destination.longitude={1}amp;destination.name={2}",
geoPos.Latitude,
geoPos.Longitude,
locationName));
Launcher.LaunchUriAsync(driveToUri);
Ответ №2:
официальное решение:
Uri uri = new Uri("ms-drive-to:?destination.latitude=" latitude.ToString(CultureInfo.InvariantCulture)
"amp;destination.longitude=" longitude.ToString(CultureInfo.InvariantCulture))
var success = await Windows.System.Launcher.LaunchUriAsync(uri);
if (success)
{
// Uri launched.
}
else
{
MessageBox.Show("error");
}
Но с этим решением есть проблема.
Если вы используете программы Nokia (ЗДЕСЬ ), все работает нормально.
если вы хотите использовать waze, вы должны добавить origin.latitude и origin.longitude.
на странице MSDN сказали, что это необязательно, но на самом деле вы должны это написать.
Я уже не могу загружать moovit, но если у кого-то возникнут проблемы, это мне очень поможет.
Комментарии:
1. это еще один ответ, более эффективный с waze
2. Больше похоже на ошибку с Waze, что они неправильно реализовали схему…