#c# #uwp #bing-maps #uwp-maps
#c# #uwp #bing-карты #uwp-карты
Вопрос:
Я использую простой метод, который возвращает местоположение на карте для меня, но я хотел бы получить этот адрес только на английском языке.
public static async Task<MapLocation> ResolveLocationForGeopoint(Geopoint geopoint)
{
MapLocationFinderResult result = await MapLocationFinder.FindLocationsAtAsync(geopoint);
if (result.Status == MapLocationFinderStatus.Success)
{
if (result.Locations.Count != 0)
// Check if the result is really valid
if (result.Locations[0].Address.Town != "")
return result.Locations[0];
}
return null;
}
Моя проблема в том, что когда мой язык Windows русский, он возвращает кириллические символы.
Я попытался переопределить язык приложения:
ApplicationLanguages.PrimaryLanguageOverride = "en";
Но, похоже, это не работает…
Как я мог бы получить локализованную строку из этого метода?
Комментарии:
1. Может быть, название города или местоположения написано кириллицей, почему вы хотите его изменить?
2. Потому что я использую карту в Венгрии, и ни в одном названии венгерского города нет кириллических символов. : D Он просто отображает каждое имя на системном языке.
Ответ №1:
MapLocationFinder.Метод FindLocationsAtAsync теперь не предоставляет механизм для указания языка, используемого в возвращаемом адресе. Он всегда автоматически использует язык отображения Windows. И в большинстве случаев улица и город локализованы в соответствии с местной культурой. Например, если вы запрашиваете местоположение во Франции, названия улиц локализуются на французском языке.
В качестве обходного пути мы можем использовать REST-сервисы Bing Maps, которые предоставляют REST API, которые могут указывать параметр Culture. Для FindLocationsAtAsync
метода мы можем использовать Поиск местоположения по точке, например, следующим образом:
http://dev.virtualearth.net/REST/v1/Locations/47.64054,-122.12934?c=en-USamp;key=BingMapsKey
Кроме того, вы можете отправить запрос функции на WPDev User Voice, чтобы запросить эту функцию.