javascript通过两点经纬度获取距离例子

首先,百度地图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;
}
直接调用就行了,这样就获取到了两地的距离;

时间: 2024-09-27 08:54:19

javascript通过两点经纬度获取距离例子的相关文章

iOS 根据两点经纬度计算距离的示例

根据两点经纬度计算距离方法: - (double)latitudeAndLongitudeWithLon1:(double)lon1 lat1:(double)lat1 lon2:(double)lon2 lat2:(double)lat2{     double er = 6378137; // 6378700.0f;     //ave. radius = 6371.315 (someone said more accurate is 6366.707)     //equatorial r

PHP根据两点间的经纬度计算距离_php技巧

这是一个不错的示例,直接贴代码,首先要知道纬度值.经度值 /** * @desc 根据两点间的经纬度计算距离 * @param float $lat 纬度值 * @param float $lng 经度值 */ function getDistance($lat1, $lng1, $lat2, $lng2) { $earthRadius = 6367000; //approximate radius of earth in meters /* Convert these degrees to r

PHP实现搜索地理位置及计算两点地理位置间距离的实例_php实例

地理位置搜寻LBS,存储每个地点的经纬度坐标,搜寻附近的地点,建立地理位置索引可提高查询效率. mongodb地理位置索引,2d和2dsphere,对应平面和球面. 1.创建lbs集合存放地点坐标 use lbs; db.lbs.insert( { loc:{ type: "Point", coordinates: [113.332264, 23.156206] }, name: "广州东站" } ) db.lbs.insert( { loc:{ type: &qu

HTML5 获取用户经纬度及距离计算公式

在做项目时需要做定位获取经纬度并计算距离,这里使用 HTML5 获取经纬度. <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>利用html5获取经纬度</title> </head>   <body> <span id="support">将下面的经纬度输入谷歌地图:</span

Android获取经纬度计算距离介绍

经度指示南北方向,纵向纬度指示东西方向,横向 获取经纬度 使用GPS权限:复制代码 代码如下:<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> Android提供LocationManager和Location,可以方便的获得经纬度.海拔等位置.使用LocationManager来获得位置管理类,从而可以获得历史GPS信息以及位置变

java 根据经纬度 坐标 计算两点之间的距离

根据经纬度,坐标,计算两点之间的距离: 参数格式如下:每一个param的两个值之间用分号分割 @param1  positionOne =aa.bbbb;cc.dddd @param2  positionOne =ee.bbbb;gg.dddd public static double getDistance(String positionOne, String positionTwo) {double long1;double lat1;double long2;double lat2;dou

根据经纬度计算地球上两点之间的距离js实现代码_javascript技巧

利用JS实现的根据经纬度计算地球上两点之间的距离 最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距离(The Great Circle Distance). 公式如下: 使用JS来实现为: 复制代码 代码如下: var EARTH_RADIUS = 6378137.0; //单位M var PI = Math.PI; function getRad(

flex中Away3D计算两点间的距离、两点间的中点例子

在Away3D开发中,有时需要计算两个点(Vector3D )之间的距离或者中点.假设有如下v1.v2两个坐标点. 1,两点间的距离(线段长度) var v1:Vector3D = new Vector3D(0,0,0); var v2:Vector3D = new Vector3D(200,200,200); var lenght:Number =  v1.subtract(v2).length;  //346.41016151377545 2,两点间的中点(线段中点) var v1:Vect

利用JS实现的根据经纬度计算地球上两点之间的距离

最近用到了根据经纬度计算地球表面两点间距离的公式,然后就用JS实现了一下. 计算地球表面两点间的距离大概有两种办法. 第一种是默认地球是一个光滑的球面,然后计算任意两点间的距离,这个距离叫做大圆距离(The Great Circle Distance). 公式如下: 使用JS来实现为:     var EARTH_RADIUS = 6378137.0;    //单位M    var PI = Math.PI;          function getRad(d){         retur