2016-04-08 2 views
0

Я хочу получить текущее местоположение и название города, используя Xamarin.Android. Я использовал код из этой ссылки https://developer.xamarin.com/recipes/android/os_device_resources/gps/get_current_device_location/, но я получаю только «Широта» и «Долгота». Может быть, я не получаю адрес, потому что я использую эмулятор?Получить текущее местоположение и название города Xamarin.Android

Я хочу, чтобы решить эту проблему и получить текущее местоположение и адрес, используя минимальный код (с помощью плагинов, API, может быть ..)

Заранее спасибо :)

ответ

0

Я думаю, что вы можете взять посмотреть на geocoder in android

var addresses = await geo.GetFromLocationAsync (42.37419, -71.120639, 1); 

Этот рецепт создает экземпляр Geocoder, который находится в пространстве имен Android.Locations. Геокодер вызывает GetFromLocationAsync с широтой и долготой для обратного геокодирования. Это приведет к асинхронному сетевому вызову, так что основной поток пользовательского интерфейса не будет заблокирован. Когда результат будет возвращен, метод вернет список адресов и продолжит работу в потоке пользовательского интерфейса. В этом вызове возвращается 1 адрес, потому что это номер, переданный в третий аргумент вызова GetFromLocationAsync. Возвращенный адрес содержит разнообразную информацию о местоположении, включая адрес улицы.

+0

Я использую плагин Geolocator в один проект и другой проект без использования этого плагина. Я развертываю оба проекта с эмулятором Xamarin Android Player, и я получаю Широта и долготу, но не адрес .. Может быть, мне нужно установить Google Play Services или что-то в этом роде? ?? Заранее спасибо –

0

У Xamarin есть отличная техническая статья, которая поможет вам пройти весь этот процесс на Android, используя Geocoder.

Ref: https://developer.xamarin.com/recipes/android/os_device_resources/gps/get_current_device_location/

Код, который делает Long/Lat для поиска адреса является:

async Task<Address> ReverseGeocodeCurrentLocation() 
{ 
    Geocoder geocoder = new Geocoder(this); 
    IList<Address> addressList = 
     await geocoder.GetFromLocationAsync(_currentLocation.Latitude, _currentLocation.Longitude, 10); 

    Address address = addressList.FirstOrDefault(); 
    return address; 
} 

FYI: Большинство эмуляторы имеют определяемые пользователем настройки для насмешливый Latitude и Longitude, так что вы можете изменить это и тест, получающий разные ответы.

т.е. в Xamarin в Android-плеер, есть диалог настройки GPS:

enter image description here

Есть аналогичный параметр в GenyMotion в эмуляторе Android и т.д ...

+0

Я использую плагин геолокатора в одном проекте и другой проект без использования этого плагина. Я развертываю оба проекта с эмулятором Xamarin Android Player, и я получаю Широта и долготу, но не адрес .. Может быть, мне нужно установить Google Play Services или что-то в этом роде? ?? заранее спасибо –

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