web-dev-qa-db-ja.com

Android:ユーザーが特定の場所に入力したときに通知を受け取る

私はAndroidユーザーが特定の場所に入ると通知を出すアプリケーションを開発しています
ユーザーは緯度経度(つまりGoogleマップ)を使用して場所を指定できます
緯度と経度を取得する方法は知っていますが、問題は、ユーザーが特定の場所に入力すると、以前に指定した緯度と経度と正確に一致しないことです。 enter image description here

画像に示されているように、ユーザーがエリア(約20メートル)に入るときに「マイプレイス」と呼ばれる場所を指定すると、アプリケーションはユーザーに通知を送信する必要があります。
ユーザーが指定した緯度と経度(私の場所)と、アプリケーションがGPSで取得した現在の緯度と経度を比較する方法を知りたいです。比較は次のように行われます。ユーザーが20メートルのエリアの私の場所の近くにいる場合はtrue。 (この20メートルは概算です。)精度をAndroid例:20メートルに設定できますか?.
ありがとうございました。

18
Mahesh Meniya

この問題への最善のアプローチは、GeoFences機能を使用することです。詳細については、 https://developer.Android.com/training/location/geofencing.html を参照してください。

概要:-アプリケーションは基盤となるOSに登録されます-と言っています-これが私の監視したいジオフェンスのリスト(特定の場所+その場所からの半径)です。 -ユーザーがこのジオフェンス内に入った場合-私を起こして、そう言ってください。 -その時点で-先に進んで任意の手順を実行するか(サーバーを呼び出してユーザーに表示する必要のある情報を尋ねる)、またはプッシュ通知(アプリ通知内)を送信して必要な作業を行うことができます。

お役に立てれば。

18
Keval Prabhu

LocationManager.addProximityAlert関数を見てください。それはあなたが望むことをほぼ正確に行います。警告、それはかなりの量のバッテリーを使用します。

6
Gabe Sechan

あなたは空間距離関数で計算するgpsプーリングを作ることができます

BluedotinnovationのポイントSDK(AndroidとiOS)があり、精度が高く、バッテリーの消耗が少ないです。レーダーの同様の無料SDKもあります。

レーダージオフェンシングは、ネイティブiOSまたはAndroidジオフェンシングよりも強力で、無制限のジオフェンス、ポリゴンジオフェンス、停止検出、および30メートルまでの精度をクロスプラットフォームでサポートします。

また、ReactNativeをサポートしています。

1
Fuad All