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

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

<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;
    },

猜你喜欢

转载自www.cnblogs.com/zhuyapeng/p/11317000.html