Android如何使用location.distanceTo()

时间:2015-01-29 07:55:12

标签: java android string google-maps location

我正在使用fragement,我需要获取我当前的位置(lat和lng) 我需要用目的地位置计算我当前的位置。

你能帮我一臂之力吗?计算位置的最佳方法是什么:

如何使用lat和lng获取当前位置和目的地位置的距离;

    LocationManager locationManager;
    Location locatio;



locationManager = (LocationManager)getActivity().getSystemService(Context.LOCATION_SERVICE);

location = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);





String product_latitude     = "3.121191";
            String product_longtitude   = "101.673298";

            Double latitude     = Double.valueOf(product_latitude);
            Double longtitude   = Double.valueOf(product_longtitude);

            // Calculate the Distance
            String product_distance = location.distanceTo(latitude, longtitude);

4 个答案:

答案 0 :(得分:15)

试试这个

double latitude=lat;
double longitude=lng;    
float distance=0;
Location crntLocation=new Location("crntlocation");
crntLocation.setLatitude(currentLatitude);
crntLocation.setLongitude(currentLongitude);

Location newLocation=new Location("newlocation");
newLocation.setLatitude(latitude);
newLocation.setLongitude(longitude);


//float distance = crntLocation.distanceTo(newLocation);  in meters
distance =crntLocation.distanceTo(newLocation) / 1000; // in km

答案 1 :(得分:4)

您可以使用位置的静态方法: distanceBetween 来获取2个位置之间的距离。

float [] results = new float[5]; 
Location.distanceBetween(startLatitude, startLongitude, endLatitude,
endLongitude, results)

doc:here

答案 2 :(得分:0)

使用Direction API查找从当前位置到目的地的距离。它返回一个JSON对象作为distance,它以英里为单位给出距离,你可以解析该JSON并在你的应用程序屏幕上显示它。

对于Google的官方文档,请阅读here

阅读教程here

希望这会有所帮助!!!

答案 3 :(得分:0)

“ distanceTo”给出了近似结果...

您可以使用DistanceMatrix API获得接近准确的结果。

DistanceMatrix API