百度地图:通过经纬度获得位置信息和距离

获取位置性息:先通过微信公众号获得经纬度,然后根据经纬度换取位置

<script src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>
    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.4"></script>
    <script>
                var signature = '@ViewBag.signature';
        //微信
        wx.config({
            debug: false,
            appId: '211',
            timestamp:12 ,
            nonceStr: '121',
            signature: signature,
            jsApiList: [
                'getLocation']
        });

        wx.ready(function () {
            wx.getLocation({
                success: function (res) {
                    var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90
                    var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。
                    var speed = res.speed; // 速度,以米/每秒计
                    var accuracy = res.accuracy; // 位置精度
                    getAddress(latitude, longitude);
                }, cancel: function (res) {
                    alert('用户拒绝授权获取地理位置');
                },
                fail: function (res) {
                    alert("获取位置失败");
                }
            });
        });
        function getAddress(latitude, longitude) {
            var map = new BMap.Map("allmap");
            var point = new BMap.Point(longitude, latitude);
            var gc = new BMap.Geocoder();
            gc.getLocation(point, function (rs) {
                var addComp = rs.addressComponents;
                var mapAddress = addComp.province + addComp.city + addComp.district
                    + addComp.street + addComp.streetNumber;
                vm.address = mapAddress;
            });
        }

计算距离:

/**
     * 计算两点间的距离
     * pt1 {lng:"12.34",lat:"3423"}第一个点的经纬度
     * pt2 {lng:"12.34",lat:"3423"}第二个点的经纬度
     * */
    getDistance:function(pt1,pt2){
        var map = new BMap.Map("container");
        var point1 = new BMap.Point(pt1.lng,pt1.lat);
        var point2 = new BMap.Point(pt2.lng,pt2.lat);
        var distance = map.getDistance(point1,point2);
        return distance;
    },

 

转载于:https://www.cnblogs.com/zhuyapeng/p/11317000.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值