• 百度地图坐标转换


    在百度地图开发过程中,有可能会遇到一些关于坐标转换的问题,下面就把自己在项目过程中遇到的一些转换方法以及网上搜集到的一些方法写下来,以备不时之需

    1.国测局坐标转百度坐标

    /**  
         * 国测局转换百度经纬度  
         * @param point  
         * @return  
         */  
        public static LatLng gcjTobaidu(LatLng point) {  
            // double x = gg_lon, y = gg_lat;  
            double x = point.longitude, y = point.latitude;  
            double z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);  
            double theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);  
            double bd_lon = z * Math.cos(theta) + 0.0065;  
            double bd_lat = z * Math.sin(theta) + 0.006;  
            LatLng point1 = new LatLng(bd_lat,bd_lon);  
            return point1;  
        }  

    2.接下来是百度地图开发文档上面的坐标转换方法

      这里用到com.baidu.mapapi.map包下面的Projection类,我们要实现坐标转换首先要获取到百度地图的Projection

      方法:

    Projection mProjection=mapView.getMap().getProjection()

    然后用mProjection去调用百度api里面已经封装好的坐标转换方法
      

    1. 屏幕坐标  转  屏幕坐标  

        返回值        方法
        LatLng        fromScreenLocation(Point point)

      2. 屏幕坐标  转  地理坐标  

        该方法把以米为计量单位的距离(沿赤道)在当前缩放水平下转换到一个以像素(水平)为计量单位的距离。

        返回值        方法
        float          metersToEquatorPixels(float meters)

      3. 地理坐标  转  openGL坐标

        在 OnMapDrawFrameCallback 的 onMapDrawFrame 函数中使用。  

        返回值        方法
        PointF        toOpenGLLocation(LatLng location, MapStatus mapStatus)

      
      

      4. 地理坐标   转  屏幕坐标  

        返回值        方法
        Point        toScreenLocation(LatLng location)

  • 相关阅读:
    python高级特性和高阶函数
    代理模式及案例
    我的报错错误记录
    摘抄-编码规范
    测试java的Lambda语法
    测试IDEA将新建项目提交到github上
    js处理科学计数法
    测试java操作运算符
    java根据模板生成,导出word和pdf(aspose.words实现word转换pdf)
    sqlserver日期函数
  • 原文地址:https://www.cnblogs.com/David-Young/p/4451423.html
Copyright © 2020-2023  润新知