vue 百度地图纠偏 经纬度偏差
1、百度地图纠偏: https://www.codeprj.com/blog/ad60761.html
百度地图 :https://dafrok.github.io/vue-baidu-map/#/zh/start/usage/
实例中心:https://lbsyun.baidu.com/jsdemo.htm#a5_2
git 路书解析 :https://github.com/Dafrok/vue-baidu-map/blob/master/docs/md/zh/bml-lushu.md
使用百度api
http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=${list[i].JD}&y=${list[i].WD}
得到的是纠正后的base64加密数据
使用node本身的 new Buffer(jw.data.x, ‘base64’).toString()进行转换,得出的数据是string类型,要将其转换为Number类型,详情请看链接1。
jw = await ctx.curl(`http://api.map.baidu.com/ag/coord/convert?from=0&to=4&x=${list[i].JD}&y=${list[i].WD}`, {
dataType: 'json',
timeout: 3000
});
// console.dir(jw)
obj.lng = Number(new Buffer(jw.data.x, 'base64').toString());//经度
obj.lat = Number(new Buffer(jw.data.y, 'base64').toString());//纬度
2、根据经纬度返回地址等信息
使用百度api
https://api.map.baidu.com/geocoder/v2/?location=${lat},${lng}&output=json&ak=0hT82pj7F8UQM9jkMEsVHeWn8rbN5XFn&pois=0
let lat='23.112223' //纬度
let lng='113.331084' //经度
let res = await ctx.curl(`https://api.map.baidu.com/geocoder/v2/?location=${lat},${lng}&output=json&ak=0hT82pj7F8UQM9jkMEsVHeWn8rbN5XFn&pois=0`)
返回广州塔信息
{
status: 0,
result: {
location: {
lng: 113.33108399999998,
lat: 23.1122230107818
},
formatted_address: "广东省广州市海珠区阅江西路222号",
business: "赤岗,新港西路,客村",
addressComponent: {
country: "中国",
country_code: 0,
country_code_iso: "CHN",
country_code_iso2: "CN",
province: "广东省",
city: "广州市",
city_level: 2,
district: "海珠区",
town: "",
town_code: "",
distance: "99",
direction: "西",
adcode: "440105",
street: "阅江西路",
street_number: "222号"
},
pois: [ ],
roads: [ ],
poiRegions: [
{
direction_desc: "内",
name: "广州塔",
tag: "旅游景点;风景区",
uid: "45d8aa46648681673a13fd63",
distance: "0"
}
],
sematic_description: "广州塔内,汇礼轩商场西北99米",
cityCode: 257
}
}
3、关键字检索地址
https://api.map.baidu.com/place/v2/search??query="广州塔"®ion="广州"&page_size=20&output=json&ak=0hT82pj7F8UQM9jkMEsVHeWn8rbN5XFn&pois=0