美文网首页
jsonp 计算距离

jsonp 计算距离

作者: 小北呀_ | 来源:发表于2019-11-01 19:44 被阅读0次

    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()


    相关文章

      网友评论

          本文标题:jsonp 计算距离

          本文链接:https://www.haomeiwen.com/subject/wxdqbctx.html