2016-04-08 22 views
0

Xamarin.Android kullanarak mevcut konum ve şehir adını almak istiyorum. Bu bağlantıyı https://developer.xamarin.com/recipes/android/os_device_resources/gps/get_current_device_location/'dan kullandım ama sadece 'Latitude' ve 'Boylam' olsun. Belki adresi alamıyorum, çünkü bir emülatör kullanıyorum?Geçerli konum ve şehir adı al Xamarin.Android

Bu sorunu gidermek ve mevcut konumu ve adresi asgari kodu kullanarak almak istiyorum (belki bazı eklenti, API kullanarak ..) peşin :)

cevap

0

yılında

Teşekkür Sana bir alabilir düşünüyorum geocoder in android

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

Bu tarif Android.Locations ad alanında olan bir Geocoder örneğini oluşturur bak. Geocoder, GetFromLocationAsync'i coğrafi kodu tersine çevirmek için enlem ve boylamı çağırır. Bu, ana UI iş parçacığının engellenmemesi için ağ çağrısını eşzamansız olarak gerçekleştirir. Sonuç döndüğünde, yöntem bir adres listesi döndürecek ve UI iş parçacığı üzerinde devam edecektir. Bu çağrıda 1 adresi döndürülür, çünkü bu sayı GetFromLocationAsync çağrısının üçüncü bağımsız değişkenine iletilir. İade edilen adres, cadde adresi de dahil olmak üzere, yer hakkında çeşitli bilgiler içerir.

+0

ben geolocator eklentisi kullanıyorum: Xamarin Android Player'da

yani

GPS ayarlarının bir diyalog var Bu eklentiyi kullanmadan bir proje ve diğer proje. Ben her iki proje de Xamarin Android Player emülatörü ile konuşuyorum, ve Latitude ve Boylam olsun, ama adresi değil .. Belki Google Play Hizmetleri veya bir şey yüklemeliyim .. ?? Şimdiden teşekkürler –

0

Xamarin, Geocoder'u kullanarak Android'deki tüm süreç boyunca çalışan harika bir teknik makaleye sahiptir.

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

Uzun/Lat arama Adres yapar kod şudur: Bilginize

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; 
} 

: Çoğu emülatörlerle böylece değiştirebilir Latitude ve Longitude alay için kullanıcı tanımlı bir ayarı vardır Bu ve farklı yanıtlar alma testi.

enter image description here

vb GenyMotion Android Emülatörü'nde, benzer ayar vardır ...

+0

Bir projede geolocator eklentisi ve bu eklentiyi kullanmadan başka bir proje kullanıyorum. Ben her iki proje de Xamarin Android Player emülatörü ile konuşuyorum, ve Latitude ve Boylam olsun, ama adresi değil .. Belki Google Play Hizmetleri veya bir şey yüklemeliyim .. ?? Şimdiden teşekkürler –