百度地图坐标转换

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

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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在UniApp中使用百度地图进行坐标转换,可以使用百度地图开放平台提供的转换接口。以下是一种实现方式: 1. 设置百度地图开放平台的开发者密钥: 在uni-app的项目中,找到`manifest.json`文件,在`App`节点下添加如下代码: ``` "baidu_map": { "ak": "你的百度地图开发者密钥" } ``` 将其中的`你的百度地图开发者密钥`替换成你自己的密钥。 2. 创建一个方法用于坐标转换: 在需要使用坐标转换的页面或组件中,创建一个方法,例如`convertCoords`: ```javascript methods: { convertCoords(lng, lat) { return new Promise((resolve, reject) => { uni.request({ url: 'https://api.map.baidu.com/geoconv/v1/', data: { ak: uni.getStorageSync('baidu_map').ak, coords: `${lng},${lat}`, from: 1, to: 5 }, success(res) { if (res.data && res.data.status === 0) { resolve(res.data.result[0]); } else { reject(new Error('坐标转换失败')); } }, fail(err) { reject(err); } }); }); } } ``` 3. 调用坐标转换方法: 在需要进行坐标转换的地方,调用`convertCoords`方法,传入需要转换的经度和纬度,并处理转换后的数据: ```javascript this.convertCoords(lng, lat) .then(result => { // 处理转换后的坐标数据 console.log(result); }) .catch(error => { // 处理错误 console.error(error); }); ``` 这样就可以在UniApp中使用百度地图进行坐标转换了。注意替换代码中的密钥和处理方法,以适应你的实际需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值