2018-05-15

(这里引用百度地图的js ,要在百度api申请秘钥)


wx.config({

        //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。

        //appId: '', // 必填,公众号的唯一标识

        //timestamp: , // 必填,生成签名的时间戳

        //nonceStr: '', // 必填,生成签名的随机串

        //signature: '',// 必填,签名

@Html.Raw(ViewBag.wxJsApiParam) //这里是.net 的后台直接输出以上所需要的json 

        jsApiList: ['getLocation'] // 必填,需要使用的JS接口列表

    });

   wx.ready(function () {

        wx.getLocation({

            type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'

            success: function (res) {

                var latitude = res.latitude; // 纬度,浮点数,范围为90 ~ -90

                var longitude = res.longitude; // 经度,浮点数,范围为180 ~ -180。

                var speed = res.speed; // 速度,以米/每秒计

                var accuracy = res.accuracy; // 位置精度

bdLocationAddress(longitude, latitude); //这里是通过微信获取经纬度

                //alert("经度:" + longitude + "纬度:" + latitude);

                //经度:113.2381

                //纬度:23.1949

                //转换后

                //var x = 113.24997769358316;

                //var y = 23.198141278002385;

            }

        });

    });

    function bdLocationAddress(x, y) {

        //以下获取地理位置

        // 百度地图API功能

        //GPS坐标

        //var x = 113.2381;

        //var y = 23.1949;

var ggPoint = new BMap.Point(x, y);//将微信获取的经纬度转换成百度的经纬度,才可以用实际的位置去显示

        //地图初始化

        //var bm = new BMap.Map("allmap");

 distance(x, y);//这里将转换后的中心点坐标作为参数回调计算两点之间的距离

        //坐标转换完之后的回调函数

        translateCallback = function (data) {

            if (data.status === 0) {

                var marker = new BMap.Marker(data.points[0]);

                //返回位置

                var geoc = new BMap.Geocoder();

                var pt = new BMap.Point(marker.point.lng, marker.point.lat);

                geoc.getLocation(pt, function (rs) {

$(".locationAddress").text(rs.surroundingPois[0].title);//取出第0个json数据的title就是当前的所在位置

                }, { poiRadius: 300, numPois: 1 });

            }

        }

        var convertor = new BMap.Convertor();

        var pointArr = [];

        pointArr.push(ggPoint);

        convertor.translate(pointArr, 1, 5, translateCallback)

    }

function distance(x1, y1) {

        var list = $(".getPoint");

        var map = new BMap.Map("allmap");

var pointA = new BMap.Point(x1, y1);;//这里是由微信坐标转换为百度地图坐标的中心点的位置

        for (var i = 0, x2, y2; i <= list.length; i++) {

x2 = $(list[i]).attr("data-longitude");//后台返回的百度地图的经度

y2 = $(list[i]).attr("data-latitude");;//后台返回的百度地图的纬度

            //map.centerAndZoom("重庆", 12);  //初始化地图,设置城市和地图级别。

              // 创建点坐标A--大渡口区

var pointB = new BMap.Point(x2, y2); //这里是后台返回的各个店铺的坐标位置

var value = map.getDistance(pointA, pointB) <= 1000 ? parseInt(map.getDistance(pointA, pointB)) + '米' : (map.getDistance(pointA, pointB)/1000).toFixed(1) + 'Km';//获取各个店铺到中心点的距离

$(".distance:eq("+i+") ").html(value)//将值放入对应的html

   //alert((map.getDistance(pointA, pointB)).toFixed(2) + ' 米。')//获取两点距离,保留小数点后两位

        }

    }

    //$(function () {

    //    distance(113.2499994, 23.19860)

    //})




你可能感兴趣的:(2018-05-15)