Java 使用DistanceTo时出现的问题(距离不正确)
我试图计算我的地理定位点和跟踪这两个点之间多段线的标记之间的距离,但问题是当我输出结果时,它给出的是一个非常大的距离(1.125405E7),而不是(例如)1250m 这是我的密码Java 使用DistanceTo时出现的问题(距离不正确),java,android,google-maps-api-3,Java,Android,Google Maps Api 3,我试图计算我的地理定位点和跟踪这两个点之间多段线的标记之间的距离,但问题是当我输出结果时,它给出的是一个非常大的距离(1.125405E7),而不是(例如)1250m 这是我的密码 //Gets the latitude & longitude of my Geolocation Location location = new Location("A"); location.setLatitude(location.getLatitude());
//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();
有什么建议或解决方案吗?多谢各位 从代码行3“location.setLongitude(location.getLatitude());”这是错误的。您正在设置经度而不是纬度。代码:
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");
您将纬度设置为
A
的经度两次,但从未设置纬度。这是你的真实代码还是一个错误?@MarkusKauppinen修复,仍然给我一个很大的距离。你能提供两个位置的实际坐标和适当的距离结果吗?@PeppermintPaddy检查答案,已经修复,谢谢你的回答