Детали местоположения из GeoCoordinates в Windows Phone 8

Возможный дубликат:
Как получить имя адреса GPS-координаты с помощью wp7

Я разрабатываю приложение WP8. В своем приложении я хочу получить подробную информацию о конкретном месте, например, название местоположения, из его геокоординат. Я могу получить текущую позицию GPS устройства. Но он дает только геокоординаты. Есть ли какой-либо сервис, который дает информацию о местоположении по геокоординатам. Пожалуйста помогите.


person Aneesh    schedule 05.12.2012    source источник


Ответы (2)


Да, вы можете использовать API bing для получения сведений о конкретном местоположении. http://msdn.microsoft.com/en-us/library/ff701722.aspx http://stackoverflow.com/questions/9109996/getting-location-name-from-longitude-and-latitude-in-bingmap

Надеюсь, это поможет.

Кельвин

person Kelvin Davies    schedule 05.12.2012

То, что вы ищете, называется обратным геокодированием. Преобразование геокоординаты в адрес.

Как упоминалось ранее, для этого вы можете использовать Google и Bing на WP7. В Windows Phone 8 геокодирование и обратное геокодирование поддерживаются как часть платформы. Вы можете прочитать обзор геокодирования в этой вводной статье Nokia. (в разделе "Геокодирование") и более полный обзор в другой статье Nokia.

Вот пример обратного преобразования геокодирования из координаты в адрес:

private void Maps_ReverseGeoCoding(object sender, RoutedEventArgs e)
{
    ReverseGeocodeQuery query = new ReverseGeocodeQuery()
    {
        GeoCoordinate = new GeoCoordinate(37.7951799798757, -122.393819969147)
    };
    query.QueryCompleted += query_QueryCompleted;
    query.QueryAsync();
}

void query_QueryCompleted(object sender, QueryCompletedEventArgs<IList<MapLocation>> e)
{
    StringBuilder sb = new StringBuilder();
    sb.AppendLine("Ferry Building Geocoding results...");
    foreach (var item in e.Result)
    {
        sb.AppendLine(item.GeoCoordinate.ToString());
        sb.AppendLine(item.Information.Name);
        sb.AppendLine(item.Information.Description);
        sb.AppendLine(item.Information.Address.BuildingFloor);
        sb.AppendLine(item.Information.Address.BuildingName);
        sb.AppendLine(item.Information.Address.BuildingRoom);
        sb.AppendLine(item.Information.Address.BuildingZone);
        sb.AppendLine(item.Information.Address.City);
        sb.AppendLine(item.Information.Address.Continent);
        sb.AppendLine(item.Information.Address.Country);
        sb.AppendLine(item.Information.Address.CountryCode);
        sb.AppendLine(item.Information.Address.County);
        sb.AppendLine(item.Information.Address.District);
        sb.AppendLine(item.Information.Address.HouseNumber);
        sb.AppendLine(item.Information.Address.Neighborhood);
        sb.AppendLine(item.Information.Address.PostalCode);
        sb.AppendLine(item.Information.Address.Province);
        sb.AppendLine(item.Information.Address.State);
        sb.AppendLine(item.Information.Address.StateCode);
        sb.AppendLine(item.Information.Address.Street);
        sb.AppendLine(item.Information.Address.Township);
    }
    MessageBox.Show(sb.ToString());
}

Когда я запускаю этот фрагмент кода на своем WP8, я получаю следующее сообщение:

MEssageBox с подробной информацией о строительстве парома

person JustinAngel    schedule 06.12.2012
comment
Я получаю исключения System.UnauthorizedAccessException и System.Reflection.TargetInvocationException в операторе query.QueryAsync();. Что может быть возможной причиной этого? - person Mayank; 25.09.2013
comment
@Mayank Проверьте, делает ли ваше приложение несколько вызовов, за раз можно сделать только один вызов, надеюсь, это будет полезно. - person Rahul Reddy; 26.05.2014