`
z_jiankun
  • 浏览: 159520 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

百度坐标转换&计算坐标之前距离

 
阅读更多

// 坐标转换

GPS转百度

var location = transformFromWGS84ToBaidu(Float,Float);

console.log(location.lat + " _ " + location.lng);

 

百度转GPS

var location = transformFromBaiduToWGS84(Float,Float);

console.log(location.lat + " _ " + location.lng);

 

/**

 * 

 * 计算两个坐标之间距离(米)

 *

 */

public class DistUtil

{

    /**

     * @param args

     */

    public static void main(String[] args)

    {

        double[] a = {84.74704, 44.429556};

        double[] b = {84.721156, 44.450052};

        double[] c = {84.742773, 44.432865};

        

        // a点 -- b点 实时上报c点

        int ac = (int)DistUtil.LantitudeLongitudeDists(a, c);

        int cb = (int)DistUtil.LantitudeLongitudeDists(c, b);

        int ab = (int)DistUtil.LantitudeLongitudeDists(a, b);

        

        System.out.println(ac + "_" + cb + "_" + ab);

        

        if (ac + cb < ab + 10)

        {

            System.out.println("OK");

        }

    }

    

    public static double LantitudeLongitudeDists(double[] a, double[] b)

    {

        return LantitudeLongitudeDist(a[0], a[1], b[0], b[1]);

    }

    

    private static final double EARTH_RADIUS = 6378137;// 赤道半径(单位m)

    

    /**

     * 转化为弧度(rad)

     */

    private static double rad(double d)

    {

        return d * Math.PI / 180.0;

    }

    

    /**

     * 基于余弦定理求两经纬度距离

     * 

     * @param lon1 第一点的精度

     * @param lat1 第一点的纬度

     * @param lon2 第二点的精度

     * @param lat3 第二点的纬度

     * @return 返回的距离,单位km

     */

    public static double LantitudeLongitudeDist(double lon1, double lat1, double lon2, double lat2)

    {

        double radLat1 = rad(lat1);

        double radLat2 = rad(lat2);

        

        double radLon1 = rad(lon1);

        double radLon2 = rad(lon2);

        

        if (radLat1 < 0)

            radLat1 = Math.PI / 2 + Math.abs(radLat1);// south

        if (radLat1 > 0)

            radLat1 = Math.PI / 2 - Math.abs(radLat1);// north

        if (radLon1 < 0)

            radLon1 = Math.PI * 2 - Math.abs(radLon1);// west

        if (radLat2 < 0)

            radLat2 = Math.PI / 2 + Math.abs(radLat2);// south

        if (radLat2 > 0)

            radLat2 = Math.PI / 2 - Math.abs(radLat2);// north

        if (radLon2 < 0)

            radLon2 = Math.PI * 2 - Math.abs(radLon2);// west

        double x1 = EARTH_RADIUS * Math.cos(radLon1) * Math.sin(radLat1);

        double y1 = EARTH_RADIUS * Math.sin(radLon1) * Math.sin(radLat1);

        double z1 = EARTH_RADIUS * Math.cos(radLat1);

        

        double x2 = EARTH_RADIUS * Math.cos(radLon2) * Math.sin(radLat2);

        double y2 = EARTH_RADIUS * Math.sin(radLon2) * Math.sin(radLat2);

        double z2 = EARTH_RADIUS * Math.cos(radLat2);

        

        double d = Math.sqrt((x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2) + (z1 - z2) * (z1 - z2));

        // 余弦定理求夹角

        double theta = Math.acos((EARTH_RADIUS * EARTH_RADIUS + EARTH_RADIUS * EARTH_RADIUS - d * d) / (2 * EARTH_RADIUS * EARTH_RADIUS));

        double dist = theta * EARTH_RADIUS;

        return dist;

    }

    

}

分享到:
评论

相关推荐

    谷歌转百度坐标例程及坐标距离计算

    谷歌地图坐标和百度地图坐标间差距有点大,使用百度API进行转换,别附带距离度算例程。

    WGS84坐标间距离计算,WGS84转火星坐标gcj02,火星坐标转百度坐标BD09

    WGS84坐标间距离计算,WGS84转火星坐标gcj02,火星坐标转百度坐标BD09. function gcj02ToBd09(gg_lat, gg_lon: double): TLaLoDegPoint; //火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法 将 GCJ-02 坐标转换...

    坐标转换软件Coord最新完整版(含说明书)

    坐标转换问题的详细了解对于测量很重要,那么请和我一起来讨论这个问题。 首先,我们要弄清楚几种坐标表示方法。大致有三种坐标表示方法:经纬度和高程,空间直角坐标,平面坐标和高程。 我们通常说的WGS-84坐标是...

    GPS坐标系转换以及经纬度距离计算

    % * 各地图API坐标系统比较与转换; % * WGS84坐标系:即地球坐标系,国际上通用的坐标... BD09坐标系:即百度坐标系,GCJ02坐标系经加密后的坐标系; % * 搜狗坐标系、图吧坐标系等,估计也是在GCJ02基础上加密而成的。

    python提取gps数据,利用folium库生成位置分布图,包含百度坐标转换以及两点距离换算函数.zip

    以及根据相邻位置坐标获取设备移动距离,这里使用python对GPS模块输出的位置坐标信息进行提取,并使用python库对坐标位置进行描点,生成设备位置分布图,根据前后两点的坐标计算出设备移动的距离

    python提取gps数据,利用folium库生成位置分布图,包含百度坐标转换以及两点距离换算函数

    以及根据相邻位置坐标获取设备移动距离,这里使用python对GPS模块输出的位置坐标信息进行提取,并使用python库对坐标位置进行描点,生成设备位置分布图,根据前后两点的坐标计算出设备移动的距离

    delphi经纬度换算源程序

    delphi经纬度换算源程序 google 百度 原始坐标间转换,delphi经纬度换算源程序 google 百度 原始坐标间转换

    Bmap-markerCluster:百度地图10W数量级的打点聚合,解决官方聚合的性能问题

    2、不使用Map.getDistence()来计算两点距离,而是使用平面坐标系(墨卡托坐标系)计算两点距离在聚合算法中,需要频繁使用getDistence()来判断最近的聚合点,此方法性能损耗很大,10w个点聚合计算,需要3s以上的...

    百度地图源码

    定位功能:提供GPS、基站、Wi-Fi等多种定位方式,适用于室内、外...计算工具:包括距离计算、坐标转换、调起百度地图导航等功能; 全景图功能:包括检索、展示全景图,与全景图进行交互及在全景图内添加覆盖物的能力;

    百度地图升级到最新sdk资料包

    覆盖物的代码,我加进来了;... 因为我不用骑车的覆盖物,我直接都注视了; -------------------------------------------------------------------------...计算工具:包括距离计算、坐标转换、调起百度地图导航等功能;

    ArcGIS超级工具1.7.zip

     计算点到线的距离  道路河流依次经过的地方 裁剪和合并  按属性裁剪  矢量数据批量裁剪  矢量数据批量合库  影像批量裁剪  影像批量合并 MXD文档处理  MXD批量裁剪  MXD批量导出图片  mxd压缩和版本存

    相机标定 matlab

    第二部是从相机坐标系转为成像平面坐标系(像素坐标系),这一步是三维点到二维点的转换,包括K(相机内参,是对相机物理特性的近似)等参数; 投影矩阵 : P=K [ R | t ] 是一个3×4矩阵,混合了内参和外参而成。 P=...

    C# 经纬度,基站,gps,wifi集合操作类

    根据经纬度获取真实地址,两个经纬度计算距离,谷歌高德百度经纬度转换,基站和经纬度转换,wifimac地址和经纬度转换 有问题vx :GOD_T9

    gpspostion:移动H5定位插件(zepto)-定位、详细地址、地图展示

    gpspostion 1.Html5地理位置定位获取原始坐标 2.原始坐标转换成百度地图坐标 3.获取详细地址信息 4.在地图上展示当前坐在位置 5.计算当前位置距离已知坐标距离

    [地图绘制软件].Global.Mapper

    它还提供距离和面积计算,光栅混合、对比度调节、海拔高度查询、视线计算,以及一些高级功能,如图像校正、通过地表数据进行轮廓生成、通过地表数据观察分水岭、对3Dpoint数据转换为三角多边形和网格化等。...

    ArcGIS超级工具v1.7

    7.6 计算点到线的距离 7.7 锐角检查 7.8 添加经纬度坐标 7.9 椭球面积计算 8.数据转换 8.1 SHP转数据库 8.2 批量数据库转数据库 8.3 栅格彩色转黑白 9.拓扑错误处理 9.1 点不在线面上处理 9.2 检查多部件要素 9.3 ...

    地理信息系统算法基础.rar

    4.2.1栅格点坐标与矢量点坐标的关系 4.2.2栅格数据矢量化的基本步骤 4.2.3线状栅格数据的细化 4.2.4多边形栅格转矢量的双边界搜索算法 4.2.5多边形栅格转矢量的单边界搜索算法 思考题 第5章空间数据组织...

    易语言 茶凉专用模块

    参数 被转换文本, 文本型, , 欲被转换的文本(不可以转换负数以及小数) .参数 被转换进制, 整数型, , 被转换文本的进制(2-36之间) .参数 转换的进制, 整数型, , 要转换到的进制(2-36之间) .子程序 到十进制, 整数型,...

    一个牛人提供的GIS源码(很好)

    两点坐标间距离的算法以及验证 http://www.cnblogs.com/Tangf/archive/2006/07/23/457884.html 极索(Gsuo)推出新版地图采用Gmap设计思路 http://www.cnblogs.com/Tangf/archive/2006/07/23/457521.html 浅谈LBS(基于...

Global site tag (gtag.js) - Google Analytics