我正在使用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);
答案 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)