如何计算纬度和经度指定的两点之间的距离?
为了澄清,我想要以公里为单位的距离; 这些要点使用WGS84系统,我想了解可用方法的相对准确性.
我正在使用dart / flutter和,'package:latlong/latlong.dart'将GPX文件解析为LatLng对象列表。一切正常,但下一步是找到路线的总距离。
这里的问题是
如何从Dart中的LatLng对象列表中获得总距离?
我以前在Java中使用过Haversine公式,但不确定使用Dart实现它的最佳方法。任何建议的帮助将不胜感激。
编辑
下面是根据下面的答案来获取总距离的尝试。由于某种原因,它不会加totalDistance和不会返回双精度。
下面假设要遍历60个以上的LatLng对象的列表,并找到每个对象之间的距离,并添加一个totalDistance的double值,该double值在循环结束时返回。
static double getDistanceFromGPSPointsInRoute(List<LatLng> gpsList) {
double totalDistance = 0.0;
for (var i = 0; i < gpsList.length; i++) {
var p = 0.017453292519943295;
var c = cos;
var a = 0.5 -
c((gpsList[i + 1].latitude - gpsList[i].latitude) * p) / 2 +
c(gpsList[i].latitude * p) *
c(gpsList[i + 1].latitude * p) *
(1 - c((gpsList[i + 1].longitude - gpsList[i].longitude) * p)) /
2;
double distance = 12742 …Run Code Online (Sandbox Code Playgroud)