2016-05-07 25 views
4

私はxamarin.formsにGPS位置を取得するためにGeolocatorプラグインを使用してListview_ItemTappedに緯度経度&をキャプチャしています。 場所をキャプチャするのに平均15秒以上かかります。場所を即座に取得する方法はありますか?Xamarin.formsで即座にGPS位置を取得するには?

if (CrossGeolocator.Current.IsGeolocationEnabled == false) 
{ 
    await DisplayAlert("Notification", "Geolocation is Unavailable ", "Ok"); 
} 
else 
{ 
    Application.Current.Properties["LATITUDE"] = null; 
    Application.Current.Properties["LONGITUDE"] = null; 

    var locator = CrossGeolocator.Current; 
    //locator.DesiredAccuracy = 50;    
    var position = await locator.GetPositionAsync(timeoutMilliseconds: 50000); 

    Application.Current.Properties["LATITUDE"] = position.Latitude; 
    Application.Current.Properties["LONGITUDE"] = position.Longitude; 

    await Navigation.PushAsync(new RetailerDetailsPage(), false); 
} 

私はlocator.DesiredAccuracy = 50;を除去することで試みたが、いつかそれが即座に動作します&いつかそのありません。

答えて

4

はい、あなたはより迅速な応答を得ることができますが、それはがあなたの要件に応じてに依存します。

長い答えには、各デバイスのOS、モデルの精度、要求された精度、GPS取得時間、現在の物理環境(屋内、屋外、GPS衛星の物理的なシェーディングなど)完全なGPS応答を返すためにどれくらい時間がかかりますか?

Xamarin.Plugin Geolocatorは素晴らしいですが、私はいつもそれを使用していますが、プラットフォーム固有のさまざまな機能のすべてにアクセスすることはできません。

iOS AppleはCoreLocationでRequestLocationを使用することができますが、アップルはユーザーの所在地で「クイックフィックス」と表現しています。これは、利用可能な最速のGPSパワーアップ、取得およびパワーダウンを実行します。そのワンショットの場所を素早く得ることは素晴らしいことです。

アンドロイド 上では、GoogleのプレイFusedLocationProviderApi(FusedLocationApi)を使用することができますし、GetLastLocation経由でユーザーの位置をつかみます。これにより、場所がすぐに返されます(可能性はわずかですが、nullになる可能性があります)。 Googleの位置情報サービスを使用して

、あなただけのユーザーのWiFi接続(SSIDベース)などに基づいて位置を取得することができます...

だから、フォームのプラットフォーム固有のDependency Serviceを使用して経由して、あなたが得ることができますその後、迅速な場所とは、より正確かつ/またはより最近の場所を得ることがXamarin.PluginのGeolocatorを使用しています。

これは、スタートアップの起動時にアプリケーションのバックグラウンドスレッドで行うもので、ユーザーが最初に表示したビューがカスタムマップ上の場所であるため、「完全な」GPS位置がバックグラウンドスレッド(そしておそらくより正確な場所)私たちは、マップを調整することができます...私は、ユーザーがおそらく屋外環境での意志迅速&正確な場所を必要とする@SushilHangoverしかし、ここで私の場合は

+0

感謝。私はちょうどその場所への使用の訪問を確認する正確な緯度と経度が必要です。私はマップ上にユーザーの場所を表示するつもりはありません。また、ほとんどのユーザーは良い無線LANまたはインターネット接続を保証しない遠隔地になります。これは、これを実装する最も簡単で簡単な方法ですか?あなたのケースで –

+0

@GaneshParikhあなたは完全なGPS位置に依存する必要があり、それが唯一の要求にデバイス/モデル応答と同じくらい速く起こるために起こっています。だから、あなたがいるようにあなたはそれを行うために続けるか、あなたは**前**ユーザーがリストビューをタップするので、彼らが行うときには、すでに長い/緯度可能なキャッシュされていて、あなたが停止し、バックグラウンドで、ユーザーのGPS位置のチェックを開始するあなたの背景のGPSアップデート – SushiHangover

関連する問題