使用DistanceTo的问题(距离不正确)

时间:2017-11-11 17:04:35

标签: java android google-maps-api-3

我试图计算我的地理位置点和跟踪这两者之间折线的标记之间的距离,但问题是当我输出结果并且它给了我一个极大的距离(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();

任何提示或解决方案?
非常感谢!

2 个答案:

答案 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");