npm i js-md5 -S
npm i vue-jsonp -S
import md5 from 'js-md5'
import { jsonp } from 'vue-jsonp'
async getVehiclePosition(row) {
row.latitude = 39.98406
row.longitude = 116.30752
if (row.latitude && row.longitude) {
let res = await this.getGeoCoder({
location: row.latitude + ',' + row.longitude,
key: '************************************',
SK: '************************************'
})
if (res.status === 0) {
let locationName = res.result.address
} else {
showToast(res.message, 'warning')
}
}
}
getGeoCoder(param) {
let sig = md5(
`/ws/geocoder/v1?callback=jsonpCallback&key=${param.key}&location=${param.location}&output=jsonp${param.SK}`
)
// sig = encodeURI(sig) //url化一下
let getData = {
callbackQuery: 'callback', // 设置callback参数的key 不设置的话callback参数会自动被赋予一个随机值 md5校验无法通过
callbackName: 'jsonpCallback', // 设置callback 参数的值
key: param.key,
location: param.location,
output: 'jsonp',
sig
}
//签名失败的解决办法 https://lbs.qq.com/faq/serverFaq/webServiceKey
return jsonp('https://apis.map.qq.com/ws/geocoder/v1', getData)
}