グーグルマップビューと投影サークルゾーンがあります。ユーザーがプロジェクションサークル内を移動し続けると、ポップアップメッセージボックスが表示され、リスナーとプロジェクションの実装が必要になります。
どのリスナーを使用する必要があるかわかりません。あなたが私を助けてくれたら、私はそれを感謝します。ありがとう
グーグルマップビューと投影サークルゾーンがあります。ユーザーがプロジェクションサークル内を移動し続けると、ポップアップメッセージボックスが表示され、リスナーとプロジェクションの実装が必要になります。
どのリスナーを使用する必要があるかわかりません。あなたが私を助けてくれたら、私はそれを感謝します。ありがとう
それがあなたのために働く距離で試してみてください:distanceBetween
Runnable を使用してリスナーを実装できます。
private Handler handler = new Handler();
public static final int circleCheckingDelay = 1000; // in ms
private Runnable circleChecker = new Runnable()
{
public void run()
{
float distance= getDistance(GeoPoint p1, GeoPoint p2);
if(distance < ...)
{
//do something
}
handler.removeCallbacks(circleChecker);
handler.postDelayed(circleChecker, circleCheckingDelay);
}
};
次の関数を mapActivity に追加します。
再開時:
handler.postDelayed(circleChecker, circleCheckingDelay);
一時停止時:
handler.removeCallbacks(circleChecker);
このリンクもチェックしてください: 2 つのジオポイント間の距離を見つけるには?
たとえば、距離を取得する関数:
public float getDistance(GeoPoint p1, GeoPoint p2) {
double lat1 = ((double)p1.getLatitudeE6()) / 1e6;
double lng1 = ((double)p1.getLongitudeE6()) / 1e6;
double lat2 = ((double)p2.getLatitudeE6()) / 1e6;
double lng2 = ((double)p2.getLongitudeE6()) / 1e6;
float [] dist = new float[1];
Location.distanceBetween(lat1, lng1, lat2, lng2, dist);
return dist[0];
}