【高德地图API】html微信定位转高德定位,JS微信公众号定位坐标转高德定位坐标,微信公众号定位精度转换高德精度,微信腾讯地图坐标转高德地图坐标

文章讲述了在微信公众号中获取用户位置后,由于坐标系统差异导致在高德地图上显示偏差的解决方法。通过三个步骤实现:1)获取微信用户位置,2)将坐标转换为高德坐标,3)初始化地图或设置标记。提供了相应的JavaScript代码示例来转换坐标和初始化3D地图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

微信公众号获取的用户当前位置直接放到高德地图api上会偏差非常大,所以需要校正。
如下我分为三步调用:获取当前用户位置->转换成高德坐标->再初始化地图或者设置地图标点

实现

微信定位获取

wx.getLocation({
    success: function (res) {
        mapConvertFrom(res.longitude, res.latitude)
    },
    cancel: function (res) {
        alert('用户拒绝授权获取地理位置');
    }
});

微信位置坐标转换高德坐标

/**
 * ----------------------------------------------------------------------------------------------
 * 微信位置坐标转换高德坐标
 * @return
 */
function mapConvertFrom(lng, lat) {
    AMap.convertFrom(new AMap.LngLat(lng, lat), 'gps', function (status, result) {
        if (result.info === 'ok') {
            initAMap(result.locations[0].lng, result.locations[0].lat);
        }
    })
}

初始化高德地图

/**
 * ----------------------------------------------------------------------------------------------
 * 初始化地图
 * @return
 */
function initAMap(lng, lat) {
    var map = new AMap.Map('container', {
        pitch: 40, // 倾斜角度
        viewMode: '3D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D',
        zoom: 18, // 初始化地图层级,地图默认缩放大小
        buildingAnimation: true, // 建筑出现的动画
        center: [lng, lat] // 初始化地图中心点
    });
    // 添加点标
    var marker = new AMap.Marker({
	    position: [lng, lat],
	    map: map
	});
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值