uniapp地图组件拖拽生成圆形区域,返回中心点和半径,适配微信小程序
1条回答 默认 最新
- 桃宝护卫队 2023-04-09 11:27关注
有用的话,请采纳哇,这对我很重要!!!
<template> <div class="map"> <map :scale="scale" :markers="markers" @tap="onTap" @regionchange="onRegionChange"></map> </div> </template> <script> export default { data() { return { scale: 16, // 地图缩放级别 markers: [], // 地图标记 centerLatitude: '', // 圆心纬度 centerLongitude: '', // 圆心经度 radius: '', // 圆半径 circleMarker: null // 圆形标记 } }, methods: { onTap(event) { // 生成圆形标记 this.generateCircle(event) }, onRegionChange(event) { // 拖拽地图时更新圆形标记 this.updateCircle(event) }, generateCircle(event) { // 获取点击位置的经纬度 const latitude = event.detail.latitude const longitude = event.detail.longitude // 设置圆心坐标 this.centerLatitude = latitude this.centerLongitude = longitude // 创建圆形标记 const circleMarker = { id: 1, latitude: latitude, longitude: longitude, iconPath: '/static/images/circle.png', // 圆形图标路径 width: 30, height: 30 } this.circleMarker = circleMarker // 添加圆形标记 const markers = [...this.markers, circleMarker] this.markers = markers }, updateCircle(event) { // 获取拖拽后的地图中心坐标 const latitude = event.detail.latitude const longitude = event.detail.longitude // 计算圆半径 const radius = this.calculateRadius() // 更新圆形标记 const circleMarker = { ...this.circleMarker, latitude: latitude, longitude: longitude, width: radius * 2, height: radius * 2 } this.circleMarker = circleMarker // 更新圆半径 this.radius = radius }, calculateRadius() { // 计算圆半径 const pixelRatio = uni.getSystemInfoSync().pixelRatio // 设备像素比 const mapWidth = uni.getSystemInfoSync().windowWidth * pixelRatio // 地图宽度 const circleWidth = this.circleMarker.width // 圆形图标宽度 const ratio = circleWidth / mapWidth const radius = (1 / ratio) / 2 return radius } } } </script> <style> .map { width: 100%; height: 100%; } </style>
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录
悬赏问题
- ¥15 echarts动画效果失效的问题。官网下载的例子。
- ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
- ¥15 Attention is all you need 的代码运行
- ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
- ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
- ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
- ¥30 关于<main>标签页面跳转的问题
- ¥80 部署运行web自动化项目
- ¥15 腾讯云如何建立同一个项目中物模型之间的联系
- ¥30 VMware 云桌面水印如何添加