ユーザーが自宅、オフィスなどの場所をマークするアプリがあります。これらの場所の緯度と経度のデータは sqlite DB に保存されます。ユーザーの現在地を定期的に確認しています。ユーザーの現在の場所がマークされた場所の半径に収まるかどうかを確認したい。
たとえば、ユーザーの自宅の座標は (a,b) です。現在の座標 (m,n) が自宅から半径 0.5 Km 以内にあるかどうかを調べる方法。
ユーザーが自宅、オフィスなどの場所をマークするアプリがあります。これらの場所の緯度と経度のデータは sqlite DB に保存されます。ユーザーの現在地を定期的に確認しています。ユーザーの現在の場所がマークされた場所の半径に収まるかどうかを確認したい。
たとえば、ユーザーの自宅の座標は (a,b) です。現在の座標 (m,n) が自宅から半径 0.5 Km 以内にあるかどうかを調べる方法。
Location.distanceTo()
またはLocation.distanceBetween()
メソッドを使用して、2つの場所間の距離を測定できます。計算された距離が 500m 未満の場合は、必要な半径に該当します。お役に立てれば。
2 つの座標間の距離を測定するには、ここで解決策を見つけることができます。
また、データベース クエリを作成してレコードを距離で並べ替えることができます: http://forums.phpfreaks.com/index.php?topic=175951.0
または、昔ながらの方法: radius = sqrt( (ma)^2 + (nb)^2 ) 平らな地球モデルを仮定します。距離が非常に長くなると、この式は適用されなくなります