2016-10-05 2 views
1

Я использую простой метод, который возвращает расположение карты для меня, но я хотел бы получить этот адрес только на английском языке.Как получить локализованное MapLocation в 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 является русским, он возвращает символы cirillic.

Я попытался переопределить язык приложения:

ApplicationLanguages.PrimaryLanguageOverride = "en"; 

Но, кажется, он не работает ...

Как я мог получить локализованную строку из этого метода?

+0

Возможно, имя города или его местонахождение находятся на кириллице, чем вы хотите его изменить? –

+0

Becouse Я использую карту в Венгрии, и в любом венгерском городе нет кириллических персонажей. : D Он просто отображает каждое имя на системном языке. – tixovoxi

ответ

1

MapLocationFinder.FindLocationsAtAsync метод не предоставляет механизм определения языка, используемого в возвращенном адресе. Он всегда автоматически использует язык отображения Windows. И в большинстве случаев Street и Town локализованы в своей локальной культуре. Например, если вы запрашиваете местоположение во Франции, названия улиц локализуются на французском языке.

В качестве обходного пути мы можем использовать Bing Maps REST Services, который предоставляет API REST, который может указывать Culture Parameter. Для FindLocationsAtAsync метода мы можем использовать Find a Location by Point как следующее:

http://dev.virtualearth.net/REST/v1/Locations/47.64054,-122.12934?c=en-US&key=BingMapsKey 

Кроме того, вы можете отправить запрос функции на WPDev User Voice спросить для этой функции.

Смежные вопросы