0

私は、ユーザーがネットワークロケーションを使用して粗いロケーションを使用してジオロケートするAndroidアプリを書いています。ユーザーが特定の時間に場所をdb(savedLocation)に保存できるようにし、ユーザーがsavedLocationに戻った場合(またはネットワークの場所を訴えているため、その場所の大まかな範囲内)にしたい放送受信機に向けて発砲します。ユーザーの場所をデータベースに保存する方法や、現在の場所と比較する方法などをよく知っています。

ただし、ネットワークの場所が場所を決定するための比較的不正確な方法であることを考えると、ユーザーがそのsavedLocationの距離X内にいつ近づくかを決定するための良いアプローチは何でしょうか。

4

1 に答える 1

1

あなたの質問から理解できるのは、ユーザーの場所を追跡し、その場所をデータベースに保存しているということです。ここで、ユーザーが前の場所に到達したときにユーザーにプロンプ​​トを表示したいのですが、特定の地域が必要です。その場合は、以下のコードを使用して、緯度と経度からユーザーの地域を知ることができます。

String latitude1, latitude2, longitude1, longitude2;
//Now Suppose you have some values in this variables. 
//In your case latitude1 and longitude1 is from database and latitude2 and longitude2 is from current Location.
float radius = 500; //Distance in meters

Location location1 = new Location("GPS");
location1.setLatitude(latitude1);
location1.setLongitude(longitude1);

Location location2 = new Location("GPS");
location2.setLatitude(latitude2);
location2.setLongitude(longitude2);

Float distance = location1.distanceTo(location2);
distance = Math.abs(distance);

//Here you can compare two distances 1. distance and 2. radius
if(distance <= radius) {
//Use is in a 500 meters radius. You can notify user by notification
}
于 2012-04-16T05:58:14.990 に答える