2013-02-16 67 views
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(雙startLatitude,雙startLongitude,雙 endLatitude,雙endLongitude,漂浮[]結果)

表明的一點是我的。我的位置將在點

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

回答

1

距離的兩個地理點之間: -

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(); 
     } 
+0

源?說明? (我確實知道,但你至少應該添加一個鏈接到維基進行進一步的研究)。 – Femaref 2013-02-16 09:50:34

1

創建一個從GeoPointsLocation對象你有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]

+0

你能在我的代碼中替換此方法。我剛開始學習Android – 2013-02-16 09:57:54

+0

編輯後的代碼.... – vtuhtan 2013-02-16 19:17:16