如何用distanceTo来测量距离,以公里为单位

时间:2018-08-14 15:52:44

标签: android google-maps location distance tracking

我正在做一个正在运行的跟踪应用程序。我的应用程序已经跟踪了我的路径和距离,但是我不明白距离中的这些数字是什么意思。以下是屏幕截图(123)。我想以DISTANCE FORMAT格式获得以公里为单位的距离,例如在图片上(例如:1.11 KM)。 请帮我。我是Android开发的新手,所以请您说明一下该怎么做。

谢谢。

这里是我的密码

@Override
public void onLocationChanged(Location location) {
    if (location != null) {
        if(currentLocationMarker != null){
            currentLocationMarker.remove();
        }
        LatLng latLng = new LatLng(location.getLatitude(), location.getLongitude());
        MarkerOptions marker = new MarkerOptions();
        marker.position(latLng);
        currentLocationMarker=mMap.addMarker(marker);
        polylineOptions = new PolylineOptions();
        polylineOptions.color(Color.RED);
        polylineOptions.width(5);
        arrayPoints.add(latLng);
        polylineOptions.addAll(arrayPoints);
        mMap.addPolyline(polylineOptions);
        calculateMiles();
    }
}
protected float calculateMiles() {
    float totalDistance = 0;

    for(int i = 1; i < polylineOptions.getPoints().size(); i++) {
        Location currLocation = new Location("this");
        currLocation.setLatitude(polylineOptions.getPoints().get(i).latitude);
        currLocation.setLongitude(polylineOptions.getPoints().get(i).longitude);
        Location lastLocation = new Location("this");
        currLocation.setLatitude(polylineOptions.getPoints().get(i-1).latitude);
        currLocation.setLongitude(polylineOptions.getPoints().get(i-1).longitude);
        totalDistance += lastLocation.distanceTo(currLocation);
    }


    textAutoUpdateLocation.setText("Distance = " + totalDistance);
    return totalDistance;
}

2 个答案:

答案 0 :(得分:2)

HistoryCallList.add(new HistoryCall(5607059900000L, 0102030405, 1)); 

输出:

double i2=i/60000;  tv.setText(new DecimalFormat("##.##").format(i2));

答案 1 :(得分:0)

好的,所以您正在获取距离,根据文档以米为单位。 因此,您可以潜水1000公里,使其达到公里数。 最终可以将其格式化为所需的格式。

您可以通过以下方法传递距离,然后尝试是否有帮助。

   String format(float distanceInMetres) {
        float kms = distanceInMetres / 1000;
        NumberFormat formatter = NumberFormat.getInstance();
        return formatter.format(kms);
   }