欢迎任何好的并给出准确的行驶距离示例。我尝试计算纬度和经度。存储前一个和当前的点数据,并获得距离,并在车速时每5秒加一次!= 0我检查了多轮移动车辆,每次我得到不同的KMs距离。不准确。用于移动车辆路径距离计算的任何精确解决方案。
private double journeyPathDistance(double currentLat, double currentLng) {
if (isFirstTime && vehicleSpeedValue != 0) {
Location loc1 = new Location("");
loc1.setLatitude(currentLat);
loc1.setLongitude(currentLng);
Location loc2 = new Location("");
loc2.setLatitude(currentLat);
loc2.setLongitude(currentLng);
isFirstTime = false;
prevLat = currentLat;
prevLng = currentLng;
distanceKms = loc1.distanceTo(loc2) / 1000;
} else {
if (vehicleSpeedValue != 0) {
Location loc1 = new Location("");
loc1.setLatitude(prevLat);
loc1.setLongitude(prevLng);
Location loc2 = new Location("");
loc2.setLatitude(currentLat);
loc2.setLongitude(currentLng);
prevLat = currentLat;
prevLng = currentLng;
distanceKms += (loc1.distanceTo(loc2) / 1000);
}
}
return distanceKms;
}
答案 0 :(得分:0)
你必须在此基础上添加大量智能才能获得接近准确的信息。让我们假设您正在使用GPS(如果您正在使用网络,那么您将面临巨大的麻烦)。手机上的GPS实际上只能精确到10米左右。因此,每个数据点可能会偏离10米。加上很多10米的不准确度,你需要增加很多额外的距离。而你也会偶尔得到一点点。通过添加所有增量,无法使该算法工作。
您需要做的是过滤它。忽略短距离更改,只添加多个已确认读数的长距离(以确保随机错误的位置不会丢失您的读数)。立即想到的想法是试图通过找到航向的持久变化来检测转弯,并找出每个直线开始和结束的位置以找到它的长度。
当然,最准确的方法就是阅读里程表。但我认为你有理由不以简单的方式做事。
答案 1 :(得分:0)
问题不明确。但是,如果您正在寻找可以在此处找到距离的公式:Calculate distance between Latitude/Longitude points。它包含可以轻松转换为Java的Javascript代码片段。