精华内容
下载资源
问答
  • /*//WGS-84 to GCJ-02*/ static wgs_gcj(lng, lat){ if (this.out_of_china(lng, lat)) { return [lng, lat]; }else{ var a = 6378245.0; // a: 卫星椭球坐标投影到平面地图坐标系的投影因子。 var ee = 0....
      /*//WGS-84 to GCJ-02*/
      static wgs_gcj(lng, lat){
        if (this.out_of_china(lng, lat)) {
          return [lng, lat];
        }else{
          var a = 6378245.0; //  a: 卫星椭球坐标投影到平面地图坐标系的投影因子。
          var ee = 0.00669342162296594323; //  ee: 椭球的偏心率。
          var dlat = this.transformlat(lng - 105.0, lat - 35.0);
          var dlng = this.transformlng(lng - 105.0, lat - 35.0);
          var radlat = lat / 180.0 * PI;
          var magic = Math.sin(radlat);
          magic = 1 - ee * magic * magic;
          var sqrtmagic = Math.sqrt(magic);
          dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
          dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
          var mglat = lat + dlat;
          var mglng = lng + dlng;
          return {j:mglng, w:mglat};
        }
      }
    
    //gcj-02转wgs84
      static gcj_wgs(lng, lat){
        if (this.out_of_china(lng, lat)) {
          return [lng, lat];
        }
        else {
          var a = 6378245.0; //  a: 卫星椭球坐标投影到平面地图坐标系的投影因子。
          var ee = 0.00669342162296594323; //  ee: 椭球的偏心率。
          var dlat = this.transformlat(lng - 105.0, lat - 35.0);
          var dlng = this.transformlng(lng - 105.0, lat - 35.0);
          var radlat = lat / 180.0 * PI;
          var magic = Math.sin(radlat);
          magic = 1 - ee * magic * magic;
          var sqrtmagic = Math.sqrt(magic);
          dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
          dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
          var mglat = lat + dlat;
          var mglng = lng + dlng;
          return {j:lng * 2 - mglng, w:lat * 2 - mglat};
        }
      }
    
    展开全文
  • 坐标传送 WGS-84 GCJ-02 BD-09 C#坐标相互转换
  • BD-09 、GCJ-02、 WGS84 之间的互相转换
  • WGS84 GCJ-02 BD-09

    2018-04-10 18:37:15
    WGS84 (1)国际标准,从专业GPS设备中取出的数据的坐标系。 (2)国际地图提供商使用的坐标系。 GCJ-02 (1)中国标准 ...百度坐标和GCJ-02坐标的相互转换,encrypt将GCJ-02坐标转换成BD-09...

    WGS84

    (1)国际标准,从专业GPS设备中取出的数据的坐标系。

    (2)国际地图提供商使用的坐标系。

    GCJ-02

    (1)中国标准

    (2)国家规定:国内出版的各种地图系统,必须至少采用GCJ-02对地理位置进行首次加密。

     

    BD-09

    (1)百度标准

    (2)又在GCJ-02基础上二次加密

    百度坐标和GCJ-02坐标的相互转换,encrypt将GCJ-02坐标转换成BD-09,decrypt反之。

    #include <math.h>  
      
    const double x_pi = 3.14159265358979324 * 3000.0 / 180.0;  
      
    void bd_encrypt(double gg_lat, double gg_lon, double &bd_lat, double &bd_lon)  
    {  
        double x = gg_lon, y = gg_lat;  
        double z = sqrt(x * x + y * y) + 0.00002 * sin(y * x_pi);  
        double theta = atan2(y, x) + 0.000003 * cos(x * x_pi);  
        bd_lon = z * cos(theta) + 0.0065;  
        bd_lat = z * sin(theta) + 0.006;  
    }  
      
    void bd_decrypt(double bd_lat, double bd_lon, double &gg_lat, double &gg_lon)  
    {  
        double x = bd_lon - 0.0065, y = bd_lat - 0.006;  
        double z = sqrt(x * x + y * y) - 0.00002 * sin(y * x_pi);  
        double theta = atan2(y, x) - 0.000003 * cos(x * x_pi);  
        gg_lon = z * cos(theta);  
        gg_lat = z * sin(theta);  
    }
    /**
     * Created by Wandergis on 2015/7/8.
     * 提供了百度坐标(BD09)、国测局坐标(火星坐标,GCJ02)、和WGS84坐标系之间的转换
     */
     
    //定义一些常量
    var x_PI = 3.14159265358979324 * 3000.0 / 180.0;
    var PI = 3.1415926535897932384626;
    var a = 6378245.0;
    var ee = 0.00669342162296594323;
     
    /**
     * 百度坐标系 (BD-09) 与 火星坐标系 (GCJ-02)的转换
     * 即 百度 转 谷歌、高德
     * @param bd_lon
     * @param bd_lat
     * @returns {*[]}
     */
    function bd09togcj02(bd_lon, bd_lat) {
        var x_pi = 3.14159265358979324 * 3000.0 / 180.0;
        var x = bd_lon - 0.0065;
        var y = bd_lat - 0.006;
        var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
        var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
        var gg_lng = z * Math.cos(theta);
        var gg_lat = z * Math.sin(theta);
        return [gg_lng, gg_lat]
    }
     
    /**
     * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换
     * 即谷歌、高德 转 百度
     * @param lng
     * @param lat
     * @returns {*[]}
     */
    function gcj02tobd09(lng, lat) {
        var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * x_PI);
        var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * x_PI);
        var bd_lng = z * Math.cos(theta) + 0.0065;
        var bd_lat = z * Math.sin(theta) + 0.006;
        return [bd_lng, bd_lat]
    }
     
    /**
     * WGS84转GCj02
     * @param lng
     * @param lat
     * @returns {*[]}
     */
    function wgs84togcj02(lng, lat) {
        if (out_of_china(lng, lat)) {
            return [lng, lat]
        }
        else {
            var dlat = transformlat(lng - 105.0, lat - 35.0);
            var dlng = transformlng(lng - 105.0, lat - 35.0);
            var radlat = lat / 180.0 * PI;
            var magic = Math.sin(radlat);
            magic = 1 - ee * magic * magic;
            var sqrtmagic = Math.sqrt(magic);
            dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
            dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
            var mglat = lat + dlat;
            var mglng = lng + dlng;
            return [mglng, mglat]
        }
    }
     
    /**
     * GCJ02 转换为 WGS84
     * @param lng
     * @param lat
     * @returns {*[]}
     */
    function gcj02towgs84(lng, lat) {
        if (out_of_china(lng, lat)) {
            return [lng, lat]
        }
        else {
            var dlat = transformlat(lng - 105.0, lat - 35.0);
            var dlng = transformlng(lng - 105.0, lat - 35.0);
            var radlat = lat / 180.0 * PI;
            var magic = Math.sin(radlat);
            magic = 1 - ee * magic * magic;
            var sqrtmagic = Math.sqrt(magic);
            dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI);
            dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI);
            mglat = lat + dlat;
            mglng = lng + dlng;
            return [lng * 2 - mglng, lat * 2 - mglat]
        }
    }
     
    function transformlat(lng, lat) {
        var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng));
        ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
        ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0;
        ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0;
        return ret
    }
     
    function transformlng(lng, lat) {
        var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng));
        ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0;
        ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0;
        ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0;
        return ret
    }
     
    /**
     * 判断是否在国内,不在国内则不做偏移
     * @param lng
     * @param lat
     * @returns {boolean}
     */
    function out_of_china(lng, lat) {
        return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false);
    }

     

    最后欢迎大家访问我的个人网站:1024s​​​​​​​

     

    展开全文
  • 一款能够拾取GCJ-02、WGS-84以及BAIDU-09三种不同坐标系的地理坐标拾取器,也支持输入地址返回坐标值!
  • gps-84,Gcj-02, Bd-09之间的相互转换 gps-84 转 Gcj-02, gcj-02 转 Gps-84, gcj-02 转 Bd-09, Bd-09 转 gcj-02 , Bd-09 转 Gps-84, 注意: ​ 如果为度时分(116°50’36.53"),先转成: 116.85585083289394 ​ 在线...

    gps-84,Gcj-02, Bd-09之间的相互转换

    gps-84 Gcj-02,

    gcj-02 转 Gps-84,

    gcj-02 转 Bd-09,

    Bd-09 转 gcj-02 ,

    Bd-09 转 Gps-84,

    注意:

    ​ 如果为度时分(116°50’36.53"),先转成: 116.85585083289394

    ​ 在线转换参考地址: http://www.minigps.net/fc.html

    ​ 本文参考: https://blog.csdn.net/ma969070578/article/details/41013547

    package com.diversion.controller.task.test;
    
    
    // 参考地址:  https://blog.csdn.net/ma969070578/article/details/41013547
    // 度转化地址: http://www.minigps.net/fc.html
    public class PositionUtil {
        
        public static final String BAIDU_LBS_TYPE = "bd09ll";
        
        public static double pi = 3.1415926535897932384626;
        public static double a = 6378245.0;
        public static double ee = 0.00669342162296594323;
     
        /**
         * 84 to 火星坐标系 (GCJ-02) World Geodetic System ==> Mars Geodetic System
         * 
         * @param lat
         * @param lon
         * @return
         */
        public static Gps gps84_To_Gcj02(double lat, double lon) {
            if (outOfChina(lat, lon)) {
                return null;
            }
            double dLat = transformLat(lon - 105.0, lat - 35.0);
            double dLon = transformLon(lon - 105.0, lat - 35.0);
            double radLat = lat / 180.0 * pi;
            double magic = Math.sin(radLat);
            magic = 1 - ee * magic * magic;
            double sqrtMagic = Math.sqrt(magic);
            dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
            dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
            double mgLat = lat + dLat;
            double mgLon = lon + dLon;
            return new Gps(mgLat, mgLon);
        }
     
        /**
         * * 火星坐标系 (GCJ-02) to 84 * * @param lon * @param lat * @return
         * */
        public static Gps gcj_To_Gps84(double lat, double lon) {
            Gps gps = transform(lat, lon);
            double lontitude = lon * 2 - gps.getWgLon();
            double latitude = lat * 2 - gps.getWgLat();
            return new Gps(latitude, lontitude);
        }
        
    
     
        /**
         * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法 将 GCJ-02 坐标转换成 BD-09 坐标
         * 
         * @param gg_lat
         * @param gg_lon
         */
        public static Gps gcj02_To_Bd09(double gg_lon, double gg_lat) {
            double x = gg_lon, y = gg_lat;
            double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * pi);
            double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * pi);
            double bd_lon = z * Math.cos(theta) + 0.0065;
            double bd_lat = z * Math.sin(theta) + 0.006;
            return new Gps(bd_lat, bd_lon);
        }
     
        /**
         * * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法 * * 将 BD-09 坐标转换成GCJ-02 坐标 * * @param
         * bd_lat * @param bd_lon * @return
         */
        public static Gps bd09_To_Gcj02(double bd_lat, double bd_lon) {
            double x = bd_lon - 0.0065, y = bd_lat - 0.006;
            double z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * pi);
            double theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * pi);
            double gg_lon = z * Math.cos(theta);
            double gg_lat = z * Math.sin(theta);
            return new Gps(gg_lat, gg_lon);
        }
     
        /**
         * (BD-09)-->84
         * @param bd_lat
         * @param bd_lon
         * @return
         */
        public static Gps bd09_To_Gps84(double bd_lat, double bd_lon) {
     
            Gps gcj02 = PositionUtil.bd09_To_Gcj02(bd_lat, bd_lon);
            Gps map84 = PositionUtil.gcj_To_Gps84(gcj02.getWgLat(),
                    gcj02.getWgLon());
            return map84;
     
        }
     
        public static boolean outOfChina(double lat, double lon) {
            if (lon < 72.004 || lon > 137.8347)
                return true;
            if (lat < 0.8293 || lat > 55.8271)
                return true;
            return false;
        }
     
        public static Gps transform(double lat, double lon) {
            if (outOfChina(lat, lon)) {
                return new Gps(lat, lon);
            }
            double dLat = transformLat(lon - 105.0, lat - 35.0);
            double dLon = transformLon(lon - 105.0, lat - 35.0);
            double radLat = lat / 180.0 * pi;
            double magic = Math.sin(radLat);
            magic = 1 - ee * magic * magic;
            double sqrtMagic = Math.sqrt(magic);
            dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi);
            dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi);
            double mgLat = lat + dLat;
            double mgLon = lon + dLon;
            return new Gps(mgLat, mgLon);
        }
     
        public static double transformLat(double x, double y) {
            double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y
                    + 0.2 * Math.sqrt(Math.abs(x));
            ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
            ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0;
            ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0;
            return ret;
        }
     
        public static double transformLon(double x, double y) {
            double ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1
                    * Math.sqrt(Math.abs(x));
            ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0;
            ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0;
            ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0
                    * pi)) * 2.0 / 3.0;
            return ret;
        }
     
        public static void main(String[] args) {
     
            // 北斗芯片获取的经纬度为WGS84地理坐标 31.426896,119.496145
            Gps gps = new Gps(31.426896, 119.496145);
            System.out.println("gps :" + gps);
            Gps gcj = gps84_To_Gcj02(gps.getWgLat(), gps.getWgLon());
            System.out.println("gcj :" + gcj);
            Gps star = gcj_To_Gps84(gcj.getWgLat(), gcj.getWgLon());
            System.out.println("star:" + star);
            Gps bd = gcj02_To_Bd09(gcj.getWgLat(), gcj.getWgLon());
            System.out.println("bd  :" + bd);
            Gps gcj2 = bd09_To_Gcj02(bd.getWgLat(), bd.getWgLon());
            System.out.println("gcj :" + gcj2);
        }
    }
    
    展开全文
  • GCJ-02坐标系

    万次阅读 2018-09-04 14:52:56
    GCJ-02是由中国国家测绘局(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统。 它是一种对经纬度数据的加密算法,即加入随机的偏差。 国内出版的各种地图系统(包括电子形式),必须...

    GCJ-02是由中国国家测绘局(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统。

    它是一种对经纬度数据的加密算法,即加入随机的偏差。

    国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。

    展开全文
  • 高德GCJ-02坐标转换

    千次阅读 2015-07-23 14:04:42
    高德GCJ-02坐标转换 sf2gis@163.com 2015年7月23日   1 高德:WGS84-》GCJ-02 高德使用GCJ-02坐标系统,所以可以直接使用其坐标转换API。其Web服务使用无限制,注册后可以批量转换。 1.1 HTTP坐标转换 注册...
  • WGS-84 到 GCJ-02 转换算法。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
  • 坐标转换——GCJ-02

    2016-05-21 20:48:00
    WGS84(World Geodetic System 1984),是为GPS 全球定位系统 使用而建立的坐标系统GCJ-02,我国在WGS84的基础上加密得到BD-09,百度坐标在GCJ-02基础上,进行了BD-09二次加密火星坐标与百度坐标(GCJ-02----BD-09)转换...
  • 什么是GCJ-02 先来看看百度百科的解释。 GCJ-02是由中国国家测绘局(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统。 中文名:国家测量局02号标准 外文名:GCJ-02 它是一种对经纬度数据的...
  • 目前WGS84到GCJ-02坐标的转换算法似乎已经是公开的,公开搜索到了好几个WGS84到GCJ-02的转换代码,核心算法都是一致的,大家似乎使用了同一加密公式。假设这一公式确实是李成民实现WGS84到GCJ-02坐标转换使用的...
  • ■ 背景国际坐标系 WGS-84:地心坐标系,国际通用。应用:Googole Map火星坐标系 GCJ-02:由中国×××(G表示Guojia国家,C...应用:百度地图■ GCJ-02和BD-09互相转换 (js)// 高德地图坐标系(火星坐标GCJ-02) ->...
  • GCJ-02火星坐标系

    千次阅读 2015-07-18 10:18:35
    GCJ-02火星坐标系 sf2gis@163.com 2015年7月7日   1 目标:将准确的坐标信息加入随机误差,从而隐藏真实坐标。 参考:http://kongxz.com/2013/10/wgs-cgj/ 2 原理:利用各种数学计算方法,将坐标进行映射。 ...
  • BD-09 、GCJ-02、 WGS84坐标转换 DEMO请移步github下载 github 地址:https://github.com/IceTears1/BLMapCoordinatesChangeHelper.git
  • 高精度WGS84与GCJ-02坐标转换

    千次阅读 2020-06-14 00:24:10
    参见这一篇文章《使用ceres实现WGS84到GCJ-02坐标相互转换》。 在上一篇日志提到,如果公开的WGS84坐标到GSJ-02坐标转换公式是精确公式,可借助Ceres自动求导进行高精度坐标转换;如果公开的WGS84坐标到GSJ-02坐标...
  • GCJ-02火星坐标系和WGS-84坐标系转换关系 WGS-84:GPS坐标系 GCJ-02:火星坐标系,国测局02年发布的坐标体系,高德,腾讯等使用。 BD-09:百度坐标系,百度自研,百度地图使用。 GCJ-02 转WGS-84 公式 # -*- coding...
  • # RGVkaWNhdGVkIHRvIEppYW8gSGFvc29uZy4gSSBsb3ZlIHUh ... GCJ-02 ### # Krasovsky 1940 ellipsoid parameters # semi-major axis a &lt;- 6378245.0 # inverse flattening: 1/f = 298.3 # flattenin...
  • 一。在进行地图开发过程中,我们一般能... 2.GCJ02坐标系,又名“火星坐标系”,是我国国测局独创的坐标体系,由WGS-84加密而成,在国内,必须至少使用GCJ02坐标系,或者使用在GCJ02加密后再进行加密的坐标系..
  • 这是一个将GPS坐标转换成GCJ-02墨卡托坐标的js代码,很有价值,可以精确定位到具体地理位置。
  • locationManager给的坐标为WGS-84,需要转换为中国国测局地理坐标GCJ-02,在项目中使用,误差小于1米
  • 工具|拾取三种坐标系(GCJ-02、WGS-84、BAIDU-09)的坐标拾取器 本文介绍一款能够拾取GCJ-02、WGS-84以及BAIDU-09三种不同坐标系的地理坐标拾取器,其地址为:http://www.giscalculator.com/enter_coordpicker/ ...
  • 地图坐标系WGS-84、GCJ-02、BD-09的相互转换,详情请访问我的博客:https://www.vcblog.top/article/399/
  • WGS84_TO_GCJ02 中国国测局地理坐标(GCJ-02) 转换成 世界标准地理坐标(WGS-84)转换成 百度地理坐标(BD-09)
  • GPS坐标互转:WGS-84(GPS)、GCJ-02(Google地图)、BD-09(百度地图) WGS-84:是国际标准,GPS坐标(Google Earth使用、或者GPS模块) GCJ-02:中国坐标偏移标准,Google Map、高德、腾讯使用 BD-09:百度坐标偏移标准...
  • 经纬度坐标只有小数点6位时,转经纬度小数点后12位 /** * 84 to 火星坐标系 (GCJ-02) World Geodetic System ==> Mars Geodetic System ... public static double[] gps84_To_Gcj02(double lat, double lon) {
  • 火星坐标系 GCJ-02:由中国×××(G表示Guojia国家,C表示Cehui测绘,J表示Ju局)制订的地理信息系统的坐标系统。应用:高德地图 百度坐标系 BD-09:在GCJ-02的基础上二次偏移。应用:百度地图 ■ GCJ-02和BD-09...
  • GCJ-02:中国坐标偏移标准,Google Map、高德、腾讯使用 BD-09:百度坐标偏移标准,Baidu Map使用 //转换常数 var x_pi = 3.14159265358979324 * 3000.0 / 180.0; var pi = 3.14159265358979324; var a = 6378245...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,529
精华内容 3,011
关键字:

GCJ-02