uniapp中h5使用地图

devtools/2025/1/14 20:19:03/
export function loadTMap(key) {return new Promise(function(resolve, reject) {window.init = function() {// resolve(qq) //注意这里resolve(TMap) //注意这里}var script = document.createElement("script");script.type = "text/javascript";// script.src = "http://map.qq.com/api/js?v=2.exp&callback=init&key=" + key;script.src = "https://map.qq.com/api/gljs?v=1.exp&callback=init&libraries=geometry&key=" + key;script.onerror = reject;document.head.appendChild(script);})}
<template><view><view id="container"></view><view v-for="(item,index) in points" :key="index">{{item.description}}-{{ item.address }} <button @click="sign(item)" :disabled="item.isCheckIn">{{item.isCheckIn?"已签到":"签到"}}</button><button @click="navigateTo(item)" v-if="!item.isCheckIn">导航</button></view></view>
</template><script>javascript">
import { loadTMap } from '../../utils/TMap';export default {data() {return {TMap:null,longitude:0,latitude:0,points:[{longitude:104.1483,latitude:30.634763,description:"东站活动",isCheckIn:false,address:"东站"},{longitude:104.17290686,latitude:30.595694765,description:"活动1",isCheckIn:false,address:"123"}]};},methods:{navigateTo(item){uni.openLocation({latitude: item.latitude,longitude: item.longitude,scale:18,success: function () {console.log('success');},fail(err) {console.log("打开地图失败",err)}});},sign(item){console.log(this.latitude,this.longitude)console.log(item,"item",this.TMap)if(this.TMap){var point01 = new this.TMap.LatLng(this.latitude,this.longitude)var point02 = new this.TMap.LatLng(item.latitude,item.longitude)var path = [point01,point02]var distance = this.TMap.geometry.computeDistance(path);console.log('计算出的距离:' + distance);if(Math.floor(distance) < 200){item.isCheckIn = trueuni.showToast({title:"签到成功"})}else{uni.showToast({title:"签到失败,距离"+distance,icon:"error"})}}// new this.TMap.Map("container")}},onLoad() {let that = thisuni.getLocation({// type: 'gcj02',type: 'wgs84',success: function (res) {console.log('当前位置的经度:' + res.longitude);console.log('当前位置的纬度:' + res.latitude);that.longitude = res.longitudethat.latitude = res.latitudeloadTMap("地图密钥").then(TMap=>{that.TMap = TMapvar map = new TMap.Map(document.getElementById("container"), {// 地图的中心地理坐标。// center: new TMap.LatLng(30.634763, 104.1483),center: new TMap.LatLng(that.latitude, that.longitude),zoom: 11});console.log(TMap,"qq")		var markerLayer = new TMap.MultiMarker({map:map,styles: {//创建一个styleId为"myStyle"的样式(styles的子属性名即为styleId)"myStyle": new TMap.MarkerStyle({ "width": 25,  // 点标记样式宽度(像素)"height": 35, // 点标记样式高度(像素)"src": '/static/logo.png',  //图片路径//焦点在图片中的像素位置,一般大头针类似形式的图片以针尖位置做为焦点,圆形点以圆心位置为焦点"anchor": { x: 16, y: 32 }  }) },//点标记数据数组geometries: [{"id": "1",   //点标记唯一标识,后续如果有删除、修改位置等操作,都需要此id"styleId": 'myStyle',  //指定样式id  104.1483"position": new TMap.LatLng(30.634763, 104.1483),  //点标记坐标位置"properties": {//自定义属性"title": "marker1"}}, {//第二个点标记"id": "2","styleId": 'marker',"position": new TMap.LatLng(39.994104, 116.287503),"properties": {"title": "marker2"}}]})})},fail:function(err){console.log(err,"err")},complete(res) {console.log(res,"res")}});}}
</script><style lang="scss">#container {/*地图(容器)显示大小*/// width: 1200px;width: 100%;height: 400px;}
</style>

问题: 部署到线上之后,,计算距离不准


http://www.ppmy.cn/devtools/150500.html

相关文章

【每日学点鸿蒙知识】调试、网络、缓存、富文本编辑等

1、如何使用发布证书进行调试&#xff1f; 由于部分功能需要校验证书信息&#xff0c;所以需要使用调试证书和发布证书分别进行调试&#xff0c;但是使用发布证书后出现安装错误05/14 19:04:39: Install Failed: error: failed to install bundle.code:9568322error: signatur…

unity打包sdk热更新笔记

基础打包需要知识&#xff1a; 安装包大小不要超过2G&#xff0c;AB包数量过多会影响加载和构建&#xff0c;多次IO&#xff0c;用Gradle打包&#xff0c;要支持64位系统&#xff0c;不同的渠道包&#xff1a;让做sdk的人支持&#xff0c;提供渠道包的打包工具 配置系统环境变量…

双线性插值算法:原理、实现、优化及在图像处理和多领域中的广泛应用与发展趋势(二)

五、图像金字塔和多尺度分析 双线性插值在图像金字塔的构建中也发挥着重要的作用。图像金字塔是一种多分辨率表示图像的结构&#xff0c;通常包括一个原始图像的不同分辨率的版本。在构建图像金字塔时&#xff0c;我们可以通过不断地对图像进行下采样&#xff08;缩小&#xf…

TypeScript 爬虫项目实战:抓取豆瓣电影 Top 250(TypeScript简单应用)

项目介绍 通过 TypeScript 实现一个简单的爬虫程序&#xff0c;从豆瓣电影 Top 250 页面抓取电影的标题和评论信息&#xff0c;并将数据存储到本地 JSON 文件中。该项目使用了 superagent 和 cheerio 两个核心工具&#xff1a; superagent&#xff1a;一个轻量的 HTTP 请求库…

性能测试工具的原理与架构解析

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 在软件开发与运维领域&#xff0c;性能测试是确保系统稳定、高效运行的关键环节。性能测试工具作为实现这一目标的重要工具&#xff0c;通过模拟真实用户行为和负载…

vue时间格式转换

在 Vue 前端中&#xff0c;如果你想将日期格式改为 "yyyy-MM-dd HH:mm:ss"&#xff0c;可以使用 JavaScript 的 Date 对象以及常用的日期处理库&#xff08;比如 moment.js 或 dayjs&#xff09;来实现格式化。以下是两种常见的解决方案&#xff1a; 方法 1: 使用 d…

关于使用FastGPT 摸索的QA

近期在通过fastGPT&#xff0c;创建一些基于特定业务场景的、相对复杂的Agent智能体应用。 工作流在AI模型的基础上&#xff0c;可以定义业务逻辑&#xff0c;满足输出对话之外的需求。 在最近3个月来的摸索和实践中&#xff0c;一些基于经验的小问题点&#xff08;自己也常常…

python 生成24bit音频数据实例解析

一 概念 24 bit 是指音频文件的 采样深度 &#xff08;bit depth&#xff09;。 它代表了每个采样点的数据精度&#xff0c;也就是音频每个样本所使用的比特数。 24 bit 的采样深度相较于 16 bit 提供了更高的动态范围和更精确的音频信息表示。 动态范围&#xff1a;24 bit 的…