2

私はGoogleマップv2でAndroidアプリケーションに取り組んでいます。私の場合、同じ LA/LO を持つ複数のポイントがあり、これにより UX の問題が発生します。1 つはマップ上のポイントを選択することです...したがって、同じ LA/LO でこのポイントを取得し、それぞれにいくつかのメーターを追加する必要があります。 、たとえば 50m は十分な距離があり、問題を回避できます。LA/LO のメーターをインクリメントするためにこの計算を行うにはどうすればよいですか?

本当にありがとう!

4

1 に答える 1

4

これは、座標、メートル単位の距離、度単位の方位を取り、新しい座標を返すメソッドです。

public static Coordinate calcEndPoint(Coordinate center , int distance, double  bearing)
  {
      Coordinate gp=null;

      double R = 6371000; // meters , earth Radius approx
      double PI = 3.1415926535;
      double RADIANS = PI/180;
      double DEGREES = 180/PI;

      double lat2;
      double lon2;

      double lat1 = center.getDoubleLat() * RADIANS;
      double lon1 = center.getDoubleLon() * RADIANS;
      double radbear = bearing * RADIANS;

     // System.out.println("lat1="+lat1 + ",lon1="+lon1);

      lat2 = Math.asin( Math.sin(lat1)*Math.cos(distance / R) +
              Math.cos(lat1)*Math.sin(distance/R)*Math.cos(radbear) );
      lon2 = lon1 + Math.atan2(Math.sin(radbear)*Math.sin(distance / R)*Math.cos(lat1),
                     Math.cos(distance/R)-Math.sin(lat1)*Math.sin(lat2));

     // System.out.println("lat2="+lat2*DEGREES + ",lon2="+lon2*DEGREES);

      gp = new Coordinate( lon2*DEGREES, lat2*DEGREES);

      return(gp);
  }
于 2013-11-06T05:00:54.747 に答える