dart实现经纬度两点坐标之间距离计算

代码如下:

import 'dart:math';

void main() {
  print("distance between two point is : ${getDistance(
      119.9831030000, 30.2340350000, 119.9809580000, 30.2320980000)}");
}

getDistance(double lat1, double lng1, double lat2, double lng2) {
  double radLat1 = rad(lat1);
  double radLat2 = rad(lat2);
  double a = radLat1 - radLat2;
  double b = rad(lng1) - rad(lng2);
  double s = 2 *
      asin(sqrt(pow(sin(a / 2), 2) +
          cos(radLat1) * cos(radLat2) * pow(sin(b / 2), 2)));
  return s * 6378138.0;
}

double rad(double d) {
  return d * pi / 180.0;
}

选取两点作为例子:

  1. 赞成乐山红叶北门(Latitude: 119.9831030000, Longitude: 30.2340350000)
  2. 闲林街道办事处(Latitude: 119.9809580000, Longitude: 30.2320980000)
    运行结果:

distance between two point is : 261.9676660067193

一个测经纬度距离的网站测试的结果如下:

image.png

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容