我试图计算我的地理位置点和跟踪这两者之间折线的标记之间的距离,但问题是当我输出结果并且它给了我一个极大的距离(1.125405E7)而不是(例如)1,250m。
这是我的代码
//Gets the latitude & longitude of my Geolocation
Location location = new Location("A");
location.setLatitude(location.getLatitude());
location.setLongitude(location.getLongitude());
//Gets the location of a marker/Polyline which i put using onMapLongCliclistener
Location locationb = new Location("B");
locationb.setLatitude(latLng.latitude);
locationb.setLongitude(latLng.longitude);
//Calculates the distance between Geolocation/Marker
double distance=locationb.distanceTo(location);
String distancia = String.valueOf(distance);
Toast.makeText(MapsActivity.this,distancia,
Toast.LENGTH_SHORT).show();
任何提示或解决方案?
非常感谢!
答案 0 :(得分:0)
从代码行3号' location.setLongitude(location.getLatitude()); '是错的。您正在设置经度而不是纬度。
答案 1 :(得分:0)
<强>代码:强>
double distance = SphericalUtil.computeDistanceBetween(new LatLng(location.getLatitude(),location.getLongitude()),new
LatLng(latLng.latitude,latLng.longitude));
String distanceC = String.valueOf(distance);
txtDistancia.setText(new DecimalFormat("##.##").format(distanceC)+" "+"mts");