计算gps

var earth_radius=6378.137;

// 计算两个脑残点之间的距离, 单位 : 公里
function get_map_distance(latA,lngA,latB,lngB){
    var a=latA*Math.PI/180.0-latB*Math.PI/180.0;
    var b=lngA*Math.PI/180.0-lngB*Math.PI/180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(latA*Math.PI/180.0) * Math.cos(latB*Math.PI/180.0) * Math.pow(Math.sin(b / 2), 2)));
    return s * earth_radius;
}

// 计算两个脑残点之间的夹角, 单位 : 度
function get_map_bearing(lat1,lng1,lat2,lng2){
    var dLon = (lng2-lng1)* Math.PI / 180;
    var rlat1 = lat1* Math.PI / 180;
    var rlat2 = lat2* Math.PI / 180;
    var y = Math.sin(dLon) * Math.cos(rlat2);
    var x = Math.cos(rlat1)*Math.sin(rlat2) - Math.sin(rlat1)*Math.cos(lat2)*Math.cos(dLon);
    var rad = Math.atan2(y, x);
    var brng = rad* 180 / Math.PI;
    return (brng + 360) % 360;
}

// 根据距离和夹角,启示点, 在地图上找脑残点
function get_map_poi_distance(lat1,lng1,distance,bearing){
    var brng = bearing* Math.PI / 180;
    var rlat1 = lat1* Math.PI / 180;
    var rlng1 = lng1* Math.PI / 180;
    var dist = distance/earth_radius;
     var lat2 = Math.asin( Math.sin(rlat1)*Math.cos(dist) +
        Math.cos(rlat1)*Math.sin(dist)*Math.cos(brng) );
    var lon2 = rlng1 + Math.atan2(Math.sin(brng)*Math.sin(dist)*Math.cos(rlat1),
        Math.cos(dist)-Math.sin(rlat1)*Math.sin(lat2));
    lon2 = (lon2+3*Math.PI) % (2*Math.PI) - Math.PI;
    return {
        lat : (lat2* 180 / Math.PI),
        lng : (lon2* 180 / Math.PI)
    }
}

// 获得两个脑残点的中间脑残点GPS坐标, 绝对不是两个加一下除以2哦!!!
function get_map_midpoint(lat1,lng1,lat2,lng2){
    var dLon = (lng2-lng1)* Math.PI / 180;
    var rlat1 = lat1* Math.PI / 180;
    var rlat2 = lat2* Math.PI / 180;
    var rlng1 = lng1* Math.PI / 180;
    var Bx = Math.cos(rlat2) * Math.cos(dLon);
    var By = Math.cos(rlat2) * Math.sin(dLon);
    var lat3 = Math.atan2(Math.sin(rlat1)+Math.sin(rlat2),
        Math.sqrt( (Math.cos(rlat1)+Bx)*(Math.cos(rlat1)+Bx) + By*By ) );
    var lon3 = rlng1 + Math.atan2(By, Math.cos(rlat1) + Bx);
    return {
        lat : (lat3* 180 / Math.PI),
        lng : (lon3* 180 / Math.PI)
    }
}
时间: 2024-10-12 07:54:11

计算gps的相关文章

计算GPS两点间的距离[单位为:米]

/**     * 计算GPS两点间的距离[单位为:米]     * @param center GPS当前数据(LonLat对象表示,LonLat.lon表示经度,LonLat.lat表示纬度)     * @param turnPoint 转向点经纬度对象     * @return     */    private double gpsDistance( LonLat center, LonLat turnPoint )    {        double distance = 0; 

基于ArcGIS 的GPS数据地图匹配

GPS数据由于信号不良.通信异常.定位误差等原因,不能很好地落在道路上,所以需要对GPS数据进行地图匹配,与道路进行关联.而空间数据由于其特殊的数据格式,最佳的处理途径仍旧是ArcGIS Desktop系列软件. 一.路网数据检查 根据实验的需要提取出路网数据,对路网进行拓扑检查,包括不能有重叠.不能有悬挂点等,对拓扑错误进行修改:同时,需要进行"在折点处打断"操作,形成正确可用的路网数据. 二.GPS数据检查 GPS数据预处理是GPS数据使用的第一步,详见博客. 三.地图匹配 1.G

查找附近的人。

这次和于大山写了个查找附近的人,功能是使用同一软件的人可以将地理位置信息上传到服务器,其他人可通过查找的功能将指定距离内的人的相关信息(包括地理位置信息)查找出来. 其实没什么技术含量,整个工程中最核心的地方就是用到了百度地图提供的lbs接口,通过这个接口访问百度地图提供的数据库,可以实现对表的增删改查等命令,也可以精确的计算gps之间的距离. 工程分为服务器与客户端,客户端可以上传GPS信息,服务器可以通过上传的信息对数据库的GPS进行更新与添加,客户端可以通过发送GPS定位信息让服务器返回附

ios根据gps坐标来计算两点间的距离

//ios根据gps坐标来计算两点间的距离 //x1,y1 点1的坐标 x2,y2点2的坐标 -(double) gps2m:(double)x1 _y1:(double)y1 _x2:(double)x2 _y2:(double)y2{ double radLat1 = (x1 * 3.1416 / 180.0); double radLat2 = (x2 * 3.1416 / 180.0); double a = radLat1 - radLat2; double b = (y1 - y2)

计算两个GPS坐标点的距离

计算两个GPS坐标点的距离,第一个参数是第一个点的维度,第二个参数是第一个点的经度 http://yuninglovekefan.blog.sohu.com/235655696.html /** * */ package utils; /** * 坐标计算的工具类 * * @author ywf * */ public class PositionUtils { private static final double EARTH_RADIUS = 6371.004; static double

计算两个GPS经纬度坐标之间的距离 PHP

不多说了,自己代码就行,你可以直接拿来用. /** * 计算两个坐标之间的距离(米) * @param float $fP1Lat 起点(纬度) * @param float $fP1Lon 起点(经度) * @param float $fP2Lat 终点(纬度) * @param float $fP2Lon 终点(经度) * @return int */ function distanceBetween($fP1Lat, $fP1Lon, $fP2Lat, $fP2Lon){ $fEARTH_

用墨卡托和GPS坐标计算距离时误差测试

iOS墨卡托和GPS坐标计算距离时误差测试,测试结果: 墨卡托和gps坐标来回转换没有误差. 墨卡托坐标计算出的距离比gps坐标计算出的距离大,100/92*100 = 108米,每100米多算出8米. 故随着导航距离缩短,误差会逐渐变小. log 25.780135+0800 gps_mktDistanceTest[91276:1928266] mkt dis = 10.00 25.781216+0800 gps_mktDistanceTest[91276:1928266] gps dis =

计算两个GPS坐标的距离

场景:已知两个GPS点的经纬度坐标信息.计算两点的距离. 1. 距离/纬度关系 GPS: 22.514519,113.380301 GPS: 22.511962,113.380301 距离: 284.6439379583341   jl_wd=284.6439379583341/(22.51451-22.511962) = 111712.69150641055729984301412873 (米/度) 2. 距离/经度关系 GPS: 22.514866, 113.388444 GPS: 22.5

C# 通过GPS坐标,计算两点之间距离

之前在网上有很多这种计算的,但是代码都不怎么全.经过多方打听查询.找到完整代码.现将代码共享给大家. 有需要者觉得有用者欢迎使用.觉得用或简单的高手,请绕. public static double GetDistance(double lat1, double lng1, double lat2, double lng2) { double radLat1 = rad(lat1); double radLat2 = rad(lat2); double a = radLat1 - radLat2