如何用 distanceTo 以千米为单位测量距离
How to measure distance with distanceTo in kilometers
我正在做一个 运行 跟踪应用程序。我的应用程序已经跟踪了我的路径和距离,但我不明白距离中的这些数字是什么意思。这是屏幕截图(1,2,3). I want to get my distance in kilometers in this format 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;
}
好的,您得到的是距离,根据文档以米为单位。
所以你可以通过潜水 1000 来达到公里数。
并最终可以将其格式化为您想要的格式。
你可以通过下面的方法传入你得到的距离,试试看是否有帮助。
String format(float distanceInMetres) {
float kms = distanceInMetres / 1000;
NumberFormat formatter = NumberFormat.getInstance();
return formatter.format(kms);
}
double i2=i/60000; tv.setText(new DecimalFormat("##.##").format(i2));
输出:
5.81
我正在做一个 运行 跟踪应用程序。我的应用程序已经跟踪了我的路径和距离,但我不明白距离中的这些数字是什么意思。这是屏幕截图(1,2,3). I want to get my distance in kilometers in this format 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;
}
好的,您得到的是距离,根据文档以米为单位。 所以你可以通过潜水 1000 来达到公里数。 并最终可以将其格式化为您想要的格式。
你可以通过下面的方法传入你得到的距离,试试看是否有帮助。
String format(float distanceInMetres) {
float kms = distanceInMetres / 1000;
NumberFormat formatter = NumberFormat.getInstance();
return formatter.format(kms);
}
double i2=i/60000; tv.setText(new DecimalFormat("##.##").format(i2));
输出:
5.81