注意:!!!在做uniapp小程序导航功能时,拿到我们在后台管理设置的经纬度,根据经纬度去导航到店的时候,最好用腾讯地图来获取经纬度,uniapp小程序那边默认导航经纬度是腾讯系的,如果在后台管理这边是用百度地图获取的经纬度,在uniapp中导航的时候需要转换经纬度不然位置会有偏差!!

需求: 点击地图-标记点位置-获取到经纬度和具体的地址信息,根据输入框地址获取经纬度-标记点位置

创建腾讯账号:https://lbs.qq.com/dev/console/application/mine

创建一个应用,拿到key

我们调用那个接口,就去申请相应接口的额度,不申请的话默认只能调一次

我们是跨域掉的接口,我这边用的jsonp直接调的,不想用jsonp的可以自己写一下解决跨域的方法jsonp(只支持 GET 请求):

npm install jsonp

/ws/geocoder/v1/?location接口传参方式:

https://apis.map.qq.com/ws/geocoder/v1/?location=30.180210,120.230350&key=你的key&output=jsonp&callback=__jp0

接口返回参数:

点击地图获取地址经纬度代码:

调用API逆地址解析:/ws/geocoder/v1?location=*

<script charset="utf-8" src="https://map.qq.com/api/gljs?v=1.exp&libraries=service&key=你的key"></script>
<div style="height: 380px; margin-top: 10px"><div id="map" style="height: 100%; width: 80%"></div>
</div>
import jsonp from "jsonp";markerLayer: null,
map: null,
storeLat:30.179976,
storeLng:120.229676,
dataStoreAddress:''created() { this.initMap(this.storeLat, this.storeLng); },//初始化地图initMap(lat, lng) {let that = this;lat = lat || 30.179976; // 默认纬度lng = lng || 120.229676; // 默认经度const center = new TMap.LatLng(lat, lng);if (!that.map) {that.map = new TMap.Map(document.getElementById("map"), {center: center,zoom: 17,});that.map.on("click", this.clickHandler);that.markerLayer = new TMap.MultiMarker({id: "marker-layer",map: that.map,styles: {marker: new TMap.MarkerStyle({width: 25,height: 35,anchor: { x: 16, y: 32 },src: "https://mapapi.qq.com/web/lbs/javascriptGL/demo/img/marker-pink.png",}),},geometries: [{id: "demo",styleId: "marker",position: new TMap.LatLng(lat, lng),properties: {title: "marker",},},],});} else {// 如果地图已经存在,只更新中心位置和标记that.map.setCenter(new TMap.LatLng(lat, lng));that.markerLayer.updateGeometries([{styleId: "marker",id: "demo",position: new TMap.LatLng(lat, lng),},]);}
},//地址逆解析获取详细地址
getAreaCode() {return new Promise((resolve, reject) => {const url = `https://apis.map.qq.com/ws/geocoder/v1/?location=${this.storeLat},${this.storeLng}&key=你的key&output=jsonp`;jsonp(url, (error, res) => {if (error) {reject(error);} else {resolve(res);}});}).then((res) => {console.log(res, "点击地图获取到的地址信息");this.dataStoreAddress = res.result.address;}).catch((error) => {console.error("Error:", error);});
},
// 地图点击事件
clickHandler(evt) {let lat = evt.latLng.getLat().toFixed(6);let lng = evt.latLng.getLng().toFixed(6);this.storeLng = lng;this.storeLat = lat;this.getAreaCode();this.markerLayer.updateGeometries([{styleId: "marker",id: "demo",position: new TMap.LatLng(lat, lng),},]);
},

根据输入框地址获取经纬度:

调用API地址解析:/ws/geocoder/v1?address=*

 接口分配额度

接口参数:

接口返回:

代码:

<el-input v-model="dataStoreAddress" ></el-input>
<el-button type="primary" @click="setLaLo()">根据地址获取经纬度</el-button>
    setLaLo() {this.markerLayer.setGeometries([]);//清空点标记let geocoder = new TMap.service.Geocoder();geocoder.getLocation({ address: `${ this.dataStoreAddress }` }).then((res) => {let { lat, lng } = res.result.location;this.markerLayer.updateGeometries([{styleId: "marker",id: "demo",position: res.result.location,},]);this.storeLng = lng;this.storeLat = lat;this.map.setCenter(res.result.location);});},

uniapp小程序百度系经纬度转换为腾讯经纬度方法:

//导航---转换经纬度
export function openLoWgs84Bd09(latitude, longitude) {const x_pi = 3.14159265358979324 * 3000.0 / 180.0;const x = longitude - 0.0065;const y = latitude - 0.006;const z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);const wz = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);const bd_lon = z * Math.cos(wz);const bd_lat = z * Math.sin(wz);return {lat: bd_lat,lon: bd_lon};
}

地址距离计算需求---将 wx.getLocation 获取的 WGS84 坐标转化为百度地图的 BD-09 坐标

export function wgs84ToBd09(lat, lon) {const x = lon;const y = lat;const z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * Math.PI);const theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * Math.PI);const bd_lon = z * Math.cos(theta) + 0.0065;const bd_lat = z * Math.sin(theta) + 0.006;return {lat: bd_lat,lon: bd_lon};
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/96723.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/96723.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/96723.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7.6 残差网络

随着我们设计越来越深的网络&#xff0c;深刻理解 新添加的层如何提升神经网络的性能&#xff0c;变得至关重要。更重要的是设计网络的能力&#xff0c;在这种网络中&#xff0c;添加层会使网络更具有表达力&#xff0c;为了取得质的突破&#xff0c;需要一些数学基础。7.6.1 函…

建模工具Sparx EA的多视图协作教程

在传统建模工具中&#xff0c;功能繁杂、界面混乱、窗口频繁切换等问题长期困扰着架构师与开发人员&#xff0c;不仅拖慢设计节奏&#xff0c;更导致模型与文档严重脱节。企业架构与建模平台Sparx EA直面这些挑战&#xff0c;通过现代化的Ribbon界面与多视图协作机制&#xff0…

从聚类到集成,两种实用算法框架分享

一、K-means&#xff1a;让数据自己 “找组织”什么是聚类&#xff1f;聚类属于无监督学习的范畴 —— 简单说就是手里没有标签时&#xff0c;我们要把长得像的样本分到一组。比如给一堆用户数据&#xff0c;不需要提前知道 “高价值用户”“潜在用户” 这些标签&#xff0c;聚…

Elasticsearch:什么是神经网络?

神经网络定义 神经网络&#xff08;Neural networks&#xff09;是机器学习&#xff08;machine learning&#xff09;的一个子集&#xff0c;旨在模拟生物大脑的结构和功能。也称为人工神经网络 (artificial neural networks - ANNs)&#xff0c;神经网络由互连的节点或人工神…

XTDrone——无人机基于2D激光Lidar进行二维运动规划(细节提醒以及相关报错解决)

参考XTDrone文档&#xff1a; 二维激光SLAM&#xff08;HectorSLAM&#xff09; 语雀 二维运动规划 语雀 相关ROS依赖库&#xff1a; 本地基于的是20.04的ubuntu系统&#xff1a; sudo apt install -y ros-noetic-move-base \ ros-noetic-costmap-2d \ ros-noetic-dwa-l…

机器学习算法-朴素贝叶斯

朴素贝叶斯分类器就是根据贝叶斯公式计算结果进行分类的模型&#xff0c;“朴素”指事件之间相互独立无影响. 例 如&#xff1a;有如下数据集&#xff1a;Text CategoryA great game&#xff08;一个伟大的比赛&#xff09;Sports&#xff08;体育运动&#xff09;The e…

RoPE, 2D RoPE, 3D RoPE和复数

旋转位置编码是一种用于Transformer架构中的位置编码方法&#xff0c;从复数的角度来看&#xff0c;其主要利用了复数的乘法性质来实现位置编码&#xff0c;以下作为学习记录&#xff1a;1. 旋转位置编码1&#xff09;对于输入序列的每个位置的嵌入向量&#xff0c;将嵌入向量分…

Java静态代理与动态代理实战解析

Java静态代理 示例代码 接口&#xff1a; package com.ssg.aop.interfaces;public interface MathCalculator { // 加法public int add(int a, int b); }接口实现类&#xff1a; package com.ssg.aop.impl; import com.ssg.aop.interfaces.MathCalculator;public class Math…

如何排查服务器DNS解析失败的问题

服务器 DNS 解析失败会导致无法访问域名&#xff08;如 google.com&#xff09;&#xff0c;可能影响服务器的正常运行。以下是排查 DNS 解析失败问题的详细步骤&#xff0c;包括可能的原因、诊断方法和解决方案。1. 原因分析DNS 解析失败通常由以下原因引起&#xff1a;DNS 配…

音视频面试题集锦第 32 期

音视频学习群&#xff1a;https://gjzkeyframe.github.io/posts/wechat-group/ 音视频面试题集锦第 32 期&#xff1a; 1、请详细解释 H.264 编码中的熵编码方式&#xff08;CAVLC 和 CABAC&#xff09;&#xff0c;它们的区别和适用场景是什么&#xff1f;2、解释 H.264/H.2…

最大矩形+单调栈

题目&#xff1a;思考1&#xff1a; 利用柱形图最大矩形的思想对于矩阵的每一行看作是柱形图的地基对每一行&#xff08;认定为柱形图&#xff09;执行找最大矩形 实现&#xff1a; class Solution { public:int maximalRectangle(vector<vector<char>>& matri…

NewsNow搭建喂饭级教程

大家在自媒体写文章里遇到最难的问题便是查找题材了&#xff0c;随便选择的题材没多少人会去看&#xff0c;平台也不会给流量推送&#xff0c;所以&#xff0c;只有围绕热门题材去进行文章创作&#xff0c;才能得到平台的重点推送以及大家的关注&#xff01; 在做这个功能前&a…

大疆无人机平台 资源开放

一、部署包说明 目前基于大疆上云api开发的平台经过多轮测试&#xff0c;已经有了个稳定的版本&#xff0c;并且有山东滨州、陕西西安、河南郑州、上海、广东深圳、广东广州、宁夏以及安徽等各地的用户使用在公路巡检、森林防火、电力巡查等行业中。 下面将会先将部署包免费开…

恶劣天气下漏检率↓79%!陌讯多模态时序融合算法在道路事故识别的实战优化

原创声明 本文为原创技术解析文章&#xff0c;核心技术参数与架构设计引用自 “陌讯技术白皮书&#xff08;道路事故识别专项版&#xff09;”&#xff0c;禁止任何形式的抄袭与转载。文中代码示例、性能数据均来自实测验证&#xff0c;技术描述已完成差异化重写&#xff0c;不…

visual studio编译的软件查找所依赖的运行库方法

使用visual studio编译生成的exe软件&#xff0c;在单独运行的时候&#xff0c;总是会提示vs运行库找不到&#xff0c;比如vcruntime140.dll&#xff0c;msvcp140d.dll等找不到&#xff0c;此时如果在开发电脑中查找&#xff0c;会找出一堆各种版本的同名字动态库来&#xff0c…

ARINC 825板卡的应用

ARINC概览AEEC&#xff08;航空电子工程委员会&#xff09;是SAE ITC&#xff08;SAE行业技术联盟&#xff09;的下属机构之一&#xff0c;旨在为航空业制定标准。SAE ITC下设多个委员会和分委员会&#xff0c;各委员会设工作组负责制定航空电子设备和系统的各种标准。其中&…

试析微剧《云端爱人》:AI时代的数字爱情寓言与情感觉醒

《云端爱人》作为一部聚焦人工智能与人类情感关系的短剧&#xff0c;其文本价值远超普通都市爱情题材&#xff0c;可视为数字化时代的情感寓言。以下从社会镜像、叙事张力、哲学思辨三个维度展开深度解析&#xff1a;一、「赛博恋爱」的社会预演&#xff1a;当代人的情感代偿机…

多线程下单例如何保证

系列文章目录 文章目录系列文章目录一、方法1、懒汉式双重检查锁2、饿汉式静态初始化3、使用静态内部类&#xff08;懒汉式的一种变体&#xff09;4、使用 AtomicReference5、使用依赖注入框架&#xff0c;Spring一、方法 懒汉式&#xff1a;延迟加载&#xff0c;第一次调用get…

Java的数字计算

目录 一、基本数据类型 二、包装类 三、精确计算&#xff1a;BigDecimal 四、大整数&#xff1a;BigInteger 五、实际应用示例&#xff1a;RSA 加密算法核心计算 一、基本数据类型 这是进行数字计算最高效的方式&#xff0c;直接在栈上分配内存。它们分为整数型和浮点型。…

手写MyBatis第32弹-设计模式实战:Builder模式在MyBatis框架中的精妙应用

&#x1f942;(❁◡❁)您的点赞&#x1f44d;➕评论&#x1f4dd;➕收藏⭐是作者创作的最大动力&#x1f91e;&#x1f496;&#x1f4d5;&#x1f389;&#x1f525; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4dd;欢迎留言讨论&#x1f525;&#x1f525;&am…