利用百度地图api获取经纬度和uniapp定位计算距离

获取百度地图api,成为开发者,去控制台创建应用得到一个ak就可以了

百度地图开放平台网址:百度地图开放平台 | 百度地图API SDK | 地图开发

后端是node

// 根据百度api地址获取经纬度 https://lbsyun.baidu.com/
    async getLocation(val) {
        try {
            let akey = "访问应用(AK)";
            //https://api.map.baidu.com/geocoding/v3/?address=天津宝坻区钰华街道金玉一园&output=json&ak=${akey}
            const result = await this.curl(`https://api.map.baidu.com/geocoding/v3/?address=${val}&output=json&ak=${akey}`, {
                method: 'GET',
            })
            if(result.status === 200) {
                //{"status":0,"result":{"location":{"lng":117.32139072694771,"lat":39.72031795829149},"precise":1,"confidence":70,"comprehension":100,"level":"地产小区"}}
                const jsonData = JSON.parse(result.data.toString('utf-8'));
                const location = jsonData.result.location;
                return {
                    lng: location.lng, // 经度
                    lat: location.lat  // 纬度
                }
            }
        } catch(err) {
            console.log(err.message)
        }
    },

调试正常

后端返回经纬度给前端uniapp定位,计算距离

在manifast.json中,加上以下数据

"mp-weixin" : {
        /* 小程序特有相关 */
        "appid" : "",
        ....
        "permission": {
            "scope.userLocation": {
                "desc": "您的位置信息将用于小程序定位服务"
            }
        },
        "requiredPrivateInfos": ["getLocation"]
    }

然后在index.html, 我把经纬度保存到vuex中

//获取定位
        getLocation() {
            uni.getLocation({
                //可选值为:wgs84、gcj02、bd09ll,默认值为wgs84。其中,gcj02为国测局坐标系,bd09ll为百度地图坐标系,一般使用gcj02即可。
                type: 'wgs84',
                success: (res) => {
                    //console.log(res)
                    this.setLocalInfo({
                        longitude: res.longitude, //经度,浮点数
                        latitude: res.latitude //纬度,浮点数
                    })
                },
                fail: (err) => {
                    console.log(err)
                }
            })
        }

新建一个location.js文件, 用来计算距离

/**
 * 通过经纬度 计算 用户当前位置的 的距离xx公里
 */
export default {
    
    calculateDistance(lat1, lon1, lat2, lon2) {
        const R = 6371; // 地球半径,单位千米
        const dLat = (lat2 - lat1) * (Math.PI / 180);
        const dLon = (lon2 - lon1) * (Math.PI / 180);
        const a =
            Math.sin(dLat / 2) * Math.sin(dLat / 2) +
            Math.cos(lat1 * (Math.PI / 180)) * Math.cos(lat2 * (Math.PI / 180)) *
            Math.sin(dLon / 2) * Math.sin(dLon / 2);
        const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
        const distance = R * c; // 距离,单位千米
        return distance;
    }
    
}
/**
* latitude 是uniapp返回的纬度
* longitude 是uniapp返回的经度
* parseFloat(v.latitude) 后端返回的纬度
* parseFloat(v.longitude) 后端返回的经度
*/

calculateDistance(latitude, longitude, parseFloat(v.latitude), parseFloat(v.longitude))

效果如下

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/128413.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字滤波器分析---零极点分析

数字滤波器分析---零极点分析 zplane 函数绘制线性系统的极点和零点。 例如,在 -1/2 处为零且在 0.9e−j2π0.3 和 0.9ej2π0.3 处有一对复极点的简单滤波器为 zer -0.5; pol 0.9*exp(j*2*pi*[-0.3 0.3]); 要查看该滤波器的零极点图,您可以使用 z…

网络安全(黑客)自学笔记1.0

前言 今天给大家分享一下,很多人上来就说想学习黑客,但是连方向都没搞清楚就开始学习,最终也只是会无疾而终!黑客是一个大的概念,里面包含了许多方向,不同的方向需要学习的内容也不一样。 算上从学校开始学…

智慧在线拜佛上供品花供果祈福求愿公众号开发

智慧在线拜佛上供品花供果祈福求愿公众号开发 在线点灯祈福:用户可以在线选择点灯祈福的数量和供养的香灯类型,进行祈福祈愿。 上供品花:用户可以选择不同的鲜花供养,包括鲜花种类、数量和价值,以及写上心愿祝福语。 …

磁盘的分区、格式化、检验与挂载 ---- fdisk,mkfs,mount

磁盘的分区、格式化、检验与挂载 磁盘管理是非常重要的,当我们想要再系统里面新增一块磁盘使用时,应执行如下几步: 对磁盘进行划分,以建立可用的硬盘分区 (fdisk / gdisk)对硬盘分区进行格式化&#xff0…

Map and Set

map and set 文章目录 map and set前言搜索树<1> 操作-查找<2> 操作-插入<3> 操作-删除<4> 代码展示<5> 性能分析 Map 和 Set 概念及应用场景Map 和 Set 模型分析Map 的使用<1> Map常用方法说明<3> TreeMap 演示<2> Entry 内部…

Android逆向fiddler抓包工具——理解HTTP协议

HTTP协议格式 HTTP协议是一种应用非常广泛的应用层协议&#xff0c;当我们在浏览器中输入一个URL(“网址”)时&#xff0c;浏览器就会给客户端发送一个HTTP请求&#xff0c;服务器收到请求之后&#xff0c;就会返回一个HTTP响应。 为了能够看到HTTP请求和响应的详细内容&…

最新整理【剑侠情缘龙雀修复BGU版】linux服务端带授权后台+详细教程+包进游戏

搭建资源下载地址&#xff1a;最新整理【剑侠情缘龙雀修复BGU版】linux服务端带授权后台详细教程包进游戏 - 海盗空间

卷积神经网络中参数量的计算原理及方法

手动计算参数量: 1. 卷积层参数计算方法: 参数量计算公式 卷积核宽度 * 卷积核高度 * 输入层通道数 * 输出层通道数 bias(输出层通道数) 注意:池化层没有参数(只是在已知数据区域里求个最大值)输入层通道数就是上层的卷积核数量 输出层通道数等于卷积核个数:输入层通道数经过…

滤波器实现

滤波器实现 卷积和滤波 滤波的数学基础是卷积。对于有限冲激响应 (FIR) 滤波器&#xff0c;滤波运算的输出 y(k) 是输入信号 x(k) 与冲激响应 h(k) 的卷积&#xff1a; y(k)∞∑l−∞h(l) x(k−l). 如果输入信号也是有限长度的&#xff0c;您可以使用 MATLAB conv 函数来执行…

原神私服搭建服务器配置该如何选择

原神是一款开放世界的冒险游戏&#xff0c;自从这款游戏上线以来&#xff0c;就受到越来越多的玩家喜欢&#xff0c;因为这款游戏的设定比较少见&#xff0c;剧情也非常精彩&#xff0c;有一些玩家为了更好的游戏体验想要搭建原神的私服&#xff0c;满足玩家的需求&#xff0c;…

SpringBoot 使用EasyExcel 导出Excel报表(单元格合并)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、导入依赖二、代码1. 导出简单的Excel2. 代码控制导出报表的格式 总结 前言 SpringBoot 使用Alibaba提供的EasyExcel导出Excel报表。 本文中涉及的业务逻辑…

SpringDataJpa(一)

一、JPA概述 1.1 ORM概述 ORM&#xff08;Object-Relational Mapping&#xff09; 表示对象关系映射。在面向对象的软件开发中&#xff0c;通过ORM&#xff0c;就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联&#xff0c;操作对象就可以直…

K9203 996920302 面向DNP3的网络安全解决方案

K9203 996920302 面向DNP3的网络安全解决方案 2014年ISA卓越技术创新奖获得者&#xff0c;超电子&#xff0c;3eTI的CyberFence工业防火墙解决方案提供强大加密和应用程序级深度数据包检测(DPI)功能。最近&#xff0c;3eTI为其CyberFence产品线增加了DNP3(分布式网络协议)支持…

快速开发一个简单实用的MES系统?

题主在一个光伏组件工厂做生产管理&#xff0c;但工厂竟然没有MES系统&#xff0c;于是想自己开发一个简单的MES系统。那么我们来看看题主对于开发MES系统的要求—— 对系统&#xff1a;每一个产品都有一个条形码&#xff0c;希望系统可以追踪生产计划下的产品的生产状态&…

java项目之戒烟网站(ssm+vue)

项目简介 戒烟网站实现了以下功能&#xff1a; 用户可以对首页&#xff0c;用户分享&#xff0c;论坛交流&#xff0c;公告文章&#xff0c;个人中心&#xff0c;后台管理等功能进行操作。 管理员可以对网站所有功能进行管理&#xff0c;包括管理用户的基本信息。 &#x1f4…

2011年09月06日 Go生态洞察:Go语言的反射法则

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

chatglm3-6b部署及微调

chatglm3-6b部署及微调 modelscope: https://modelscope.cn/models/ZhipuAI/chatglm3-6b/filesgithub: https://github.com/THUDM/ChatGLM3镜像: ubuntu20.04-cuda11.7.1-py38-torch2.0.1-tf1.15.5-1.8.1v100 16G现存 单卡 安装 软件依赖 # 非必要无需执行 # pip install -…

OC-编译错误

明明包含了头文件&#xff0c;但是还是显示未知的类型 可能这个头文件被某个宏包住了 #if defined(__cplusplus) 在 C 代码中包含了一个 C 的头文件会显示这个错误“the util lib only be used in c”&#xff0c;此时用 #if defined(__cplusplus) #endif 包一下就行了&…

NSS [HUBUCTF 2022 新生赛]checkin

NSS [HUBUCTF 2022 新生赛]checkin 判断条件是if ($data_unserialize[username]$username&&$data_unserialize[password]$password)&#xff0c;满足则给我们flag。正常思路来说&#xff0c;我们要使序列化传入的username和password等于代码中的两个同名变量&#xff0…

数字滤波器分析---频率响应

数字滤波器分析---频率响应 幅值、相位、冲激和阶跃响应、相位和群延迟、零极点分析。 分析滤波器的频域和时域响应。可视化复平面中的滤波器极点和零点。 频率响应 数字域 freqz 使用基于 FFT 的算法来计算数字滤波器的 Z 变换频率响应。具体来说&#xff0c;语句 [h,w]…