2016-04-08 28 views
0

Xamarin.Androidを使用して現在の場所と都市名を取得します。私はこのリンクhttps://developer.xamarin.com/recipes/android/os_device_resources/gps/get_current_device_location/からコードを使用しましたが、私は緯度と経度のみを取得します。エミュレータを使用しているため、アドレスがわからないことがありますか?現在の場所と都市名を取得するXamarin.Android

私はこの問題を解決し、最小限のコードを使用して現在の場所とアドレスを取得したい(多分、いくつかのプラグインを使用して、API ...)事前に

感謝:)

答えて

0

私はあなたが取ることができると思いますこのレシピはAndroid.Locations名前空間にあるジオコーダインスタンスを作成します geocoder in android

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

を見てください。ジオコーダーは、ジオコードを反転するために緯度と経度でGetFromLocationAsyncを呼び出します。これは、メインUIスレッドがブロックされないように非同期的にネットワークコールを実行します。結果が返されると、メソッドはアドレスのリストを返し、UIスレッドで続行します。この呼び出しでは、GetFromLocationAsync呼び出しの3番目の引数に渡される番号であるため、1つのアドレスが返されます。返された住所には、住所など、場所に関するさまざまな情報が含まれています。

+0

...あります1つのプロジェクト、およびこのプラグインを使用しない他のプロジェクトです。私はXamarin Android Playerエミュレータで両方のプロジェクトを展開していますが、私は緯度と経度を取得しますが、アドレスは取得しません。Google Playサービスなどをインストールする必要がありますか?事前に感謝します –

0

Xamarinには、Geocoderを使用して、Androidでそのプロセス全体を処理する優れた技術記事があります。

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

ロング/ LATは、ルックアップに対処するために行うコードは次のとおりです。FYI

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

:ほとんどのエミュレータはそうあなたが変更することができLatitudeLongitudeをからかうためのユーザー定義の設定を持っていますそれとテストは異なる応答を得る。 XamarinのAndroidプレーヤーでは、GPSの設定のダイアログが

すなわちあります:

enter image description here

GenyMotionのAndroidエミュレータで同様の設定などは、私がgeolocatorプラグインを使用してい

+0

私はgeolocatorプラグインを1つのプロジェクトで使用していますが、このプラグインを使用しないで他のプロジェクトを使用しています。私はXamarin Android Playerエミュレータで両方のプロジェクトを展開していますが、私は緯度と経度を取得しますが、アドレスは取得しません。Google Playサービスなどをインストールする必要がありますか?前もって感謝します –

関連する問題