微信小程序自带地图_微信小程序之地图使用

1.地图标注图标icon问题

目前只能使用png格式的图标,使用svg格式在模拟器上显示正常,在真机上显示不出来,就会显示默认的图标。

2.常用的百度地图与腾讯/高德地图经纬度转换

课外知识:

国内各种坐标系

1.地球坐标 (WGS84)

1.WGS84是现行的国际标准,例如从iphone中 GPS 设备中取出的数据就是WGS84坐标系。

2.国际地图提供商使用的坐标系。

2.国家测汇局坐标系或者火星坐标系(GCJ-02)

1.中国标准,从国行移动设备中定位获取的坐标数据使用这个坐标系

2.国家规定: 国内出版的各种地图系统(包括电子形式),必须至少采用GCJ-02对地理位置进行首次加密。

3.百度坐标 (BD-09)

1.国内百度的标准,百度 SDK,百度地图,百度相关的产品使用

课内内容:

1.web端开发中使用百度地图,由于微信小程序加载出来是腾讯地图,导致显示位置有偏差。(数据库中存的百度地图经纬度)

2.需要转换经纬度。目前已知的腾讯和高德是同一坐标的,可以互用,百度的坐标与两者稍有不同,使用前,需要先经过换算。

3.将百度地图坐标转换为腾讯地图坐标

/*

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

*/

function bMapTransQQMap(lng, lat) {

let x_pi = 3.14159265358979324 * 3000.0 / 180.0;

let x = lng - 0.0065;

let y = lat - 0.006;

let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);

let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);

let lngs = z * Math.cos(theta);

let lats = z * Math.sin(theta);

return {

lng: lngs,

lat: lats

}

}

4.将腾讯地图坐标转为百度地图坐标

/*

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

*/

function qqMapTransBMap(lng, lat) {

let x_pi = 3.14159265358979324 * 3000.0 / 180.0;

let x = lng;

let y = lat;

let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);

let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);

let lngs = z * Math.cos(theta) + 0.0065;

let lats = z * Math.sin(theta) + 0.006;

return {

lng: lngs,

lat: lats

}

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值