1

グーグルマップビューと投影サークルゾーンがあります。ユーザーがプロジェクションサークル内を移動し続けると、ポップアップメッセージボックスが表示され、リスナーとプロジェクションの実装が必要になります。

どのリスナーを使用する必要があるかわかりません。あなたが私を助けてくれたら、私はそれを感謝します。ありがとう

4

1 に答える 1

0

それがあなたのために働く距離で試してみてください: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];
}
于 2013-01-16T19:27:27.210 に答える