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


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

    <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;
        },
  • 相关阅读:
    PHP中无限分类、无限回复评论盖楼的实现方法,thinkphp5.0无限分类实例
    PHP中session详解
    使用thinkPHP做注册程序的实例
    虾米盒子系统开发APP
    angular 使用base64密码加密
    开发中遇到的两种表格文本长度处理,即长文本截断
    树组件使用文件夹图标
    angular实现指定DIV全屏
    JS调用浏览器打印机
    使用blob二进制流的方式下载后台文件
  • 原文地址:https://www.cnblogs.com/zhuyapeng/p/11317000.html
Copyright © 2020-2023  润新知