[javascript学习指南]javascript通过两点经纬度获取距离例子

时间:2020-11-24  来源:网页配色  阅读:

首先,百度地图api里面有获取经纬度的方法,直接用:

//获取经纬度
            var city_lng = "";
            var city_lat = "";
 
            var long_val = "";
            var lat_val = "";
 
            var geolocation = new BMap.Geolocation();
            geolocation.getCurrentPosition(function(r){
 
                city_lat = r.latitude;
                city_lng = r.longitude;
 
                Cookies.set("save_city_latitude",city_lat);
                Cookies.set("save_city_longitude",city_lng);
//                 console.log(city_lat);
//                 console.log(city_lng);
 
                //遍历配送点经纬度
 
                $(".sites").each(function(){
                    var $this = $(this);
                    long_val = $this.find(".longitude").val();
                    lat_val = $this.find(".latitude").val();
 
                    //调用函数计算
                    var distance = GetDistance(lat_val,long_val,city_lat,city_lng);
                    $this.find(".sites-distance").text(distance);
 
                    var Recommend_spot = $this.find(".sites-distance").text();
 
                });
});

上述代码把两地的经纬度都获取到了(用户的经纬度是通过api获得的,其他的经纬度是后台给的,通过遍历的方式获取到每一个的经纬度);

下一步:通过js获取两地的距离

function Rad(d){
    return d * Math.PI / 180.0;//经纬度转换成三角函数中度分表形式。
}
function GetDistance(lat1,lng1,lat2,lng2) {
    var radLat1 = Rad(lat1);
    var radLat2 = Rad(lat2);
    var a = radLat1 - radLat2;
    var  b = Rad(lng1) - Rad(lng2);
    var 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 *6378.137 ;// EARTH_RADIUS;
    s = Math.floor(s * 10000) / 10000;  //输出为公里
    s = parseInt(s);
    return s;
}
直接调用就行了,这样就获取到了两地的距离;

[javascript学习指南]javascript通过两点经纬度获取距离例子

http://m.bbyears.com/wangyezhizuo/112486.html

推荐访问:
相关阅读 猜你喜欢
本类排行 本类最新