地图坐标转换

20 篇文章 0 订阅
5 篇文章 0 订阅
uni-app 根据 当前经纬度获取 区域编码 

let that =this;

uni.getLocation({

  type: 'wgs84',

  success: function(res) {

    that.weizhiInfo = res;

    const latitude = res.latitude;

    const longitude = res.longitude;

    uni.request({

    header:{

       "Content-Type": "application/text"

    },

    //注意:这里的key值需要高德地图的 web服务生成的key 只有web服务才有逆地理编码

    url:'https://restapi.amap.com/v3/geocode/regeo?         output=JSON&location='+res.longitude+','+res.latitude+'&key=280802ed0116fef931dbcf5e7e9278d7&radius=1000&extensions=all',

    success(re) {

       if(re.statusCode===200){

         that.areaCode=re.data.regeocode.addressComponent.adcode;

         that.currentChooseAddress = re.data.regeocode.addressComponent.district;

         that.getStoreList(true)

      }else{

           console.log("获取信息失败,请重试!")

      }

    }

   });

},

fail() {

}

})

----------------------------------------------------------------------------------

/**
* 坐标转换,百度地图坐标转换成腾讯地图坐标
* lng 腾讯经度(pointy)
* lat 腾讯纬度(pointx)
* 经度>纬度
*/
export const  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)
* 经度>纬度
*/

export const   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];

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值