2

こんにちは。私は次のコードを持っています

           ParseQuery query = new ParseQuery("MyOb");
    query.findInBackground(new FindCallback() {
       public void done(List<ParseObject> myOb, ParseException e) {
         if (e == null) { 
            for ( i = 0; i < myOb.size(); i++) {

            geo1Dub = myOb.get(i).getParseGeoPoint("location").getLatitude();
                geo2Dub = myOb.get(i).getParseGeoPoint("location").getLongitude();
                geo1Int = (int) (geo1Dub*1E6);
            geo2Int = (int) (geo2Dub*1E6);
            pointGet = new GeoPoint(geo1Int, geo2Int);           

                    OverlayItem overlayitem = new OverlayItem(pointGet, title, title);               
            itemizedoverlay.addOverlay(overlayitem);                                 

                  } 

            mapOverlays.add(itemizedoverlay);
            mapView.postInvalidate();
          } else {


         }
       }
     });

サイトからポイントを取って地図に表示しています。使用方法を教えてください

distanceBetween(double startLatitude、double startLongitude、double endLatitude、double endLongitude、float []の結果)

その点を私と一緒に示すために。私の立場はその時点になります

 point = new GeoPoint(geoLat.intValue(), geoLng.intValue());
4

2 に答える 2

1

2つのジオポイント間の距離:-

public static double distFrom(double lat1, double lng1, double lat2, double lng2) {
            Double EARTH_RADIUS = 6371.00; 
            double earthRadius = EARTH_RADIUS;
            double dLat = Math.toRadians(lat2-lat1);
            double dLng = Math.toRadians(lng2-lng1);

            double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
                    Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
                    Math.sin(dLng/2) * Math.sin(dLng/2);
            double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
            double dist = earthRadius * c;
            return new Float(dist).floatValue();
        }
于 2013-02-16T09:37:19.533 に答える
1

Locationからオブジェクトを作成するGeoPointsと、distanceTO()メソッドが作成されます。

http://developer.android.com/reference/android/location/Location.html

float distance[] = 0.0f;
double lat = Double.valueOf(point.getLatitudeE6()/1E6);
double lat = Double.valueOf(point.getLongitudeE6()/1E6);
Location.distanceBetween(geo1Dub, geo2Dub, lat, lng, distance);

距離はメートル単位で可変になりますdistance[0]

于 2013-02-16T09:33:45.410 に答える