1.下载
npm install vue-jsonp --save
2.main.js引入
import Vuejsonp from 'vue-jsonp'
Vue.use(Vuejsonp)
3.实际使用
let lat1 = '39.894994',lng1 = '116.321192',
lat2 = '40.03648',lng2='116.37211'
// jsonp接口
let url = 'https://apis.map.qq.com/ws/distance/v1/?mode=driving&'
self.$jsonp(url,{
from:lat1 + ',' + lng1,
to:lat2 + ',' + lng2,
key:'你的key',
output:'jsonp',
callbackName: "QQmap"
})
.then(res => {
console.log(res,'success')
})
.catch(err => {
console.log(err,'err')
})
后来因为某些原因改用了直接算法计算。如下
getDistance = function(lat1,lng1,lat2,lng2) {
function getRad(d){
return d * Math.PI / 180.0;//经纬度转换成三角函数中度分表形式。
}
let radLat1 = getRad(lat1);
let radLat2 = getRad(lat2);
let a = radLat1 - radLat2;
let b = getRad(lng1) - getRad(lng2);
let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) +
Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
s = s *6378.137 ;// EARTH_RADIUS;
s = Math.round(s * 10000) / 10000;
s=s.toFixed(2);
return s
}
其实我最后是有问题的:
Vue.use() 和 Vue.prototype的区别在哪里?看了文档也没明白。我引入jsonp的时候想用Vue.prototype却报错了。只能使用Vue.use()
网友评论