js 计算两个坐标点的距离

JavaScript017

js 计算两个坐标点的距离,第1张

let PI = 3.14159265358979323//圆周率

let R = 6371229//地球半径

function getDistance(lon1,lat1,lon2,lat2){

let x,y,distance

let lonres = lon1 >lon2?lon1-lon2:lon2-lon1

let latres = lat1 >lat2?lat1-lat2:lat2-lat1

x = (lonres) * PI * R * Math.cos(((lat1 + lat2) / 2) * PI / 180) / 180

y = (lat2 - lat1) * PI * R / 180

return distance = Math.hypot(x, y)

}

getDistance: function (lat1, lng1, lat2, lng2) {

    lat1 = lat1 || 0

    lng1 = lng1 || 0

    lat2 = lat2 || 0

    lng2 = lng2 || 0

    var rad1 = lat1 * Math.PI / 180.0

    var rad2 = lat2 * Math.PI / 180.0

    var a = rad1 - rad2

    var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0

    var r = 6378137

    return r * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(rad1) * Math.cos(rad2) * Math.pow(Math.sin(b / 2), 2)))

  }

var distance = 700

if(distance < 1000)

    console.log(distance+"米")

else if(distance > 1000)

    console.log((Math.round(distance/100)/10).toFixed(1) + "公里")