两点经纬度测距

测距

两点经纬度测距,单位米

// 两点测距
  getDistance(c1, c2) {
    function Rad(d) {
      return (d * Math.PI) / 180.0;
    }
    function distanceByLnglat(lng1, lat1, lng2, lat2) {
      let radLat1 = Rad(lat1);
      let radLat2 = Rad(lat2);
      let a = radLat1 - radLat2;
      let b = Rad(lng1) - Rad(lng2);
      let s =
        2 *
        Math.asin(
          Math.sqrt(
            Math.pow(Math.sin(a / 2), 2) +
              Math.cos(radLat1) *
                Math.cos(radLat2) *
                Math.pow(Math.sin(b / 2), 2)
          )
        );
      s = s * 6378137.0; // 取WGS84标准参考椭球中的地球长半径(单位:m)
      s = Math.round(s * 10000) / 10000;
      return s;
    }
    let m = distanceByLnglat(c1[0], c1[1], c2[0], c2[1]);
    return m;
  }
getDistance([132,31],[116,32]);

你可能感兴趣的:(GIS)