精华内容
下载资源
问答
  • (JS) 百度地图与腾讯地图坐标转换

    万次阅读 2021-08-01 22:22:53
    * 坐标转换,百度地图坐标转换成腾讯地图坐标 * lng 腾讯经度(pointy) * lat 腾讯纬度(pointx) * 经度>纬度 */ function bMapToQQMap(lng, lat) { if (lng == null || lng == '' || lat == null || lat == ...
    /**
    * 坐标转换,百度地图坐标转换成腾讯地图坐标
    * lng 腾讯经度(pointy)
    * lat 腾讯纬度(pointx)
    * 经度>纬度
    */
    function bMapToQQMap(lng, lat) {
    
        if (lng == null || lng == '' || lat == null || lat == '')
            return [lng, lat];
    
        var x_pi = 3.14159265358979324;
        var x = parseFloat(lng) - 0.0065;
        var y = parseFloat(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 lng = (z * Math.cos(theta)).toFixed(7);
        var lat = (z * Math.sin(theta)).toFixed(7);
    
        return [lng, lat];
    
    }
    
    /**
    * 坐标转换,腾讯地图转换成百度地图坐标
    * lng 腾讯经度(pointy)
    * lat 腾讯纬度(pointx)
    * 经度>纬度
    */
    
    function qqMapToBMap(lng, lat) {
    
        if (lng == null || lng == '' || lat == null || lat == '')
            return [lng, lat];
    
        var x_pi = 3.14159265358979324;
        var x = parseFloat(lng);
        var y = parseFloat(lat);
        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 lng = (z * Math.cos(theta) + 0.0065).toFixed(5);
        var lat = (z * Math.sin(theta) + 0.006).toFixed(5);
        return [lng, lat];
    
    }
    
    展开全文
  • 地图坐标转换

    2015-04-10 14:54:29
    这个是关于地理坐标系如何转换的,在进行地图坐标系进行转化的时候可能会用到
  • 地图坐标转换工具

    2017-06-02 09:32:29
    地图坐标转换工具
  • GeoPoint工具类,百度地图坐标转换jar,地图坐标转换...
  • 主要介绍了Python地图坐标转换的相关知识点以及分享了相关的代码实例,对此有兴趣的朋友学习下。
  • 百度地图坐标转换工具,java后台代码,java后台处理坐标代码
  • google 地图坐标转换

    2011-05-21 09:07:36
    google 地图坐标转换,一个地图转换坐标的js脚本。
  • 地图坐标转换,火星、WGS84、BD09 火星、WGS84、BD09、GCJ02,地图坐标转换
  • 地图坐标转换算法

    2018-07-31 14:20:37
    地图工具都有坐标转换 API 可用,但是成千上万的 GPS 数据通过 API 转换是一件很消耗资源的事,所以需要提供一种离线转换的方式。 本人在项目中曾也用过 API 转换的方式,但是当设备数量一增加,在坐标转换这一个...
  • OpenLayers地图坐标转换屏幕坐标

    千次阅读 2017-06-09 21:12:07
    最近因工作原因开始接触OpenLayers地图,遇到需要将地图坐标转换成屏幕坐标,因为技术有限,在大量查看API、与大神写的文章时候还是有写地方疏忽了,先将整个地图坐标转换地图坐标进行记录。
     
    

    最近因工作原因开始接触OpenLayers地图,遇到需要将地图坐标转换成屏幕坐标,因为技术有限,在大量查看API、与大神写的文章时候还是有写地方疏忽了,先将整个地图坐标转换地图坐标进行记录。

    第一步为指定的代码获取投影对象。

    ol.proj.get('EPSG:4326') 在得到投影对象后需要取到投影有效范围,get接口为ol.proj.Projection下有getExtent方法获取投影有效性范围。

    ol.proj.get('EPSG:4326').getExtent()

         第二步

    获取地图的宽度范围,ol.extent.getWidth(ol.proj.get('EPSG:4326').getExtent());到这里基本操作结束。

    接下来就是

    //地图坐标转屏幕坐标:
    screenPt.x=screen.center.x+ ((mapPt.x-mapExtent.center.x)/resolution+0.5);
    screenPt.y=screen.center.y- (mapPt.y-mapExtent.center.y)/resolution+0.5);

    在这个公式中screen是屏幕坐标,mapPt是地图坐标,mapExtent是地图中心坐标,resolution 就是地图宽度范围,这个公式网上搜索到的,经测试无误。只是这里偏移了0.5。本人不喜欢写记录,但只因这个问题困扰我一天,希望对迷茫的朋友有一点帮助。谢谢,也希望朋友们提出我的缺点,加以改正。

    展开全文
  • 最近做项目需要百度地图坐标转换到高德地图坐标,高德官方也给出了转换接口(百度地图也给出了转换接口) http://lbs.amap.com/api/javascript-api/reference/lnglat-to-address#t1 但是还想想直接通过后台一次性...

    最近做项目需要百度地图坐标转换到高德地图坐标,高德官方也给出了转换接口(百度地图也给出了转换接口)

    http://lbs.amap.com/api/javascript-api/reference/lnglat-to-address#t1

    但是还想想直接通过后台一次性处理好坐标,因此需要找到坐标转换算法,封装起来调用。



    1 百度官方对百度坐标为何有偏移的解释

      国际经纬度坐标标准为WGS-84,国内必须至少使用国测局制定的GCJ-02,对地理位置进行首次加密。百度坐标在此基础上,进行了BD-09二次加密措施,更加保护了个人隐私。百度对外接口的坐标系并不是GPS采集的真实经纬度,需要通过坐标转换接口进行转换。


    2 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法

    GCJ-02(火星坐标 BD-09 (百度坐标)

    算法代码如下,其中 bd_encrypt 将 GCJ-02 坐标转换成 BD-09 坐标, bd_decrypt 反之。


    封装经纬度:

    /** 经纬度点封装
     * Created by 明明如月 on 2017-03-22.
     */
    public class LngLat {
        private double longitude;//经度
        private double lantitude;//维度
    
        public LngLat() {
        }
    
        public LngLat(double longitude, double lantitude) {
            this.longitude = longitude;
            this.lantitude = lantitude;
        }
    
        public double getLongitude() {
            return longitude;
        }
    
        public void setLongitude(double longitude) {
            this.longitude = longitude;
        }
    
        public double getLantitude() {
            return lantitude;
        }
    
        public void setLantitude(double lantitude) {
            this.lantitude = lantitude;
        }
    
        @Override
        public String toString() {
            return "LngLat{" +
                    "longitude=" + longitude +
                    ", lantitude=" + lantitude +
                    '}';
        }
    }


    /** 百度地图坐标和火星坐标转换
     * Created by 明明如月 on 2017-03-22.
     */
    public class CoodinateCovertor {
    
    
        private static double x_pi = 3.14159265358979324 * 3000.0 / 180.0;
    
        /**
         * 对double类型数据保留小数点后多少位
         *  高德地图转码返回的就是 小数点后6位,为了统一封装一下
         * @param digit 位数
         * @param in 输入
         * @return 保留小数位后的数
         */
         static double dataDigit(int digit,double in){
            return new   BigDecimal(in).setScale(6,   BigDecimal.ROUND_HALF_UP).doubleValue();
    
        }
    
        /**
         * 将火星坐标转变成百度坐标
         * @param lngLat_gd 火星坐标(高德、腾讯地图坐标等)
         * @return 百度坐标
         */
        
     public static LngLat bd_encrypt(LngLat lngLat_gd)
        {
            double x = lngLat_gd.getLongitude(), y = lngLat_gd.getLantitude();
            double z = sqrt(x * x + y * y) + 0.00002 * sin(y * x_pi);
            double theta = atan2(y, x) + 0.000003 * cos(x *  x_pi);
            return new LngLat(dataDigit(6,z * cos(theta) + 0.0065),dataDigit(6,z * sin(theta) + 0.006));
    
        }
        /**
         * 将百度坐标转变成火星坐标
         * @param lngLat_bd 百度坐标(百度地图坐标)
         * @return 火星坐标(高德、腾讯地图等)
         */
        static LngLat bd_decrypt(LngLat lngLat_bd)
        {
            double x = lngLat_bd.getLongitude() - 0.0065, y = lngLat_bd.getLantitude() - 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);
            return new LngLat( dataDigit(6,z * cos(theta)),dataDigit(6,z * sin(theta)));
    
        }
    
    //测试代码
        public static void main(String[] args) {
            LngLat lngLat_bd = new LngLat(120.153192,30.25897);
            System.out.println(bd_decrypt(lngLat_bd));
        }
    }
    


    经验证和高德地图自带接口转换出效果一致。


    展开全文
  • 基于Python的网络地图坐标转换方法研究
  • 基于Python的网络地图坐标转换方法研究.pdf
  • arcgis9.2 地图坐标转换屏幕坐标,和在打sp4补丁包遇到了一些问题
  • 百度地图坐标转换为墨卡托坐标

    千次阅读 2019-03-18 20:46:39
    百度地图坐标转换为墨卡托坐标 转换思路 百度坐标系 (BD-09)首先转换为火星坐标系 (GCJ-02) ,根据gci坐标的经纬度再转成墨卡托坐标; 功能代码 /** * * 火星坐标系 (GCJ-02) 与百度坐标系 (BD-09) 的转换算法 * * ...

    百度地图坐标转换为墨卡托坐标

    转换思路

    百度坐标系 (BD-09)首先转换为火星坐标系 (GCJ-02) ,根据gci坐标的经纬度再转成墨卡托坐标;

    功能代码

    /**
    * * 火星坐标系 (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);

        BigDecimal lon = new BigDecimal(gg_lon);
        //保留8位小数
        gg_lon = lon.setScale(10,BigDecimal.ROUND_HALF_UP).doubleValue();
    
        BigDecimal lat = new BigDecimal(gg_lat);
        //保留8位小数
        gg_lat = lat.setScale(10,BigDecimal.ROUND_HALF_UP).doubleValue();
    
    
        return new GPS(gg_lat, gg_lon);
    }
    

    /**
    * 转换成墨卡托坐标
    * @param X
    * @param Y
    * @return
    */
    public static String[] LonLat2Mercator(double X, double Y) {
    String[] d = new String[2];
    double x = X * 20037508.34 / 180;
    double y = Math.log(Math.tan((90 + Y) * Math.PI / 360)) / (Math.PI / 180);
    y = y * 20037508.34 / 180;

        BigDecimal lon = new BigDecimal(x);
        //保留8位小数
    
        java.text.DecimalFormat df = new java.text.DecimalFormat("########.00000000");
        String format =df.format(lon);
    
        d[0]= format+"";
        d[1] = y+"";
        return d;
    
    }
    

    注意:有时double 会以科学计数法的形式出现例如:1.2927387570712E7 ;
    等价于:1.2927387570712*10^7=12927387.570712 ;

    至此结束;

    展开全文
  • excel中高德与天地图坐标转换,可使用内部定义的函数实现批量转换
  • * 坐标转换,百度地图坐标转换成腾讯地图坐标 * lng 腾讯经度(pointy) * lat 腾讯纬度(pointx) * 经度>纬度 */ function bMapToQQMap(lng, lat) { if (lng == null || lng == '' || lat == null || lat...
  • 三维城市地图坐标转换方法说明 介绍二维地图中的经纬度坐标 转换到三维地图中的 基本方法
  • 百度地图坐标转换一组多少个是有限制的,我是用回调的方式来达到批量转换,转换过程可能不是很迅速,但是能达到效果, 下面上代码 图片从上向下看,附带项目地址:...
  • 然而一些地图SDK给出的地图坐标转换接口的实现是在服务器进行的,那么这些接口的调用不但会发起网络请求而效率上也会非常的慢,无论是对于客户端离线操作还是在自己的服务后台批量转换坐标数据,都需
  • 主要介绍了微信小程序把百度地图坐标转腾讯地图坐标过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 百度地图 坐标转换 顺序问题

    千次阅读 2017-11-20 15:58:57
    集中处理了百度地图坐标转换的一些问题,坐标批量转换,回调函数的异步性。
  • 主要有三大功能:地理编码查询,坐标转换,POI查询,可以实现一般地理分析功能。ps:部分功能需注册
  • python 百度地图坐标转换

    千次阅读 2018-04-04 23:08:12
    python 百度地图坐标转换调用及解析 url1='http://api.map.baidu.com/geoconv/v1/?coords='+XX+','+YY+'&from=5&to=6&ak=********' req=requests.get(url1) content= req.content data=...
  • /** * Fun convertGCJ02ToBD09 中国正常GCJ02坐标---->百度地图BD09坐标 * * @param double $lat 纬度 * @param double $lng 经度 * * @return array */ function convertGCJ02ToBD09($l...
  • 杜拜Makani No Api-将Makani No转换为地图坐标或从地图坐标转换为其他。 更新 由于对makani服务器进行了一些新更改,因此javascript Api由于CORS错误或“ Access-Control-Allow-Origin”标头错误而无法正常工作。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 34,555
精华内容 13,822
关键字:

地图坐标转换