高德地图显示圆形区域并在区域边上标注半径

image.png

  • bug:循环创建三个圆形区域 ,数组设置为[{raduis:500,color:“#FF0000”}],然后循环取颜色会莫名其妙报错
  • 修改为 strokeColor: [“#FF0000”, “#1EE3C2”, “#3772E9”][i]即可
 initAMap() {AMapLoader.load({key: "130cca3be68a2ff0fd5ebb6de25e4eac", // 申请好的Web端开发者Key,首次调用 load 时必填// version: "v1.4.15", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15// plugins: [//   "AMap.ControlBar",//   "AMap.ToolBar",//   "AMap.Weather",//   "AMap.CitySearch",//   "AMap.Marker",//   "AMap.MouseTool",//   "AMap.PolyEditor",//   "AMap.Driving",//   "AMap.Polyline",//   "AMap.Geolocation",//   "AMap.GraspRoad",//   "AMap.Geocoder",//   "AMap.GeometryUtil.ringArea",//   "AMap.DistrictSearch",//   "AMap.MoveAnimation",// ], // 需要使用的的插件列表,如比例尺'AMap.Scale'等}).then((AMap) => {this.map = new AMap.Map("containerMap", {// 设置地图容器idrotateEnable: true,pitchEnable: true,zoom: 13,pitch: 50,rotation: -15,viewMode: "3D", //开启3D视图,默认为关闭zooms: [2, 20],center: [119.419251, 32.400703],mapStyle: "amap://styles/blue", //设置地图的显示样式});// 工具条// var controlBar = new AMap.ControlBar({//   position: {//     right: "10px",//     top: "10px",//   },// });// this.map.addControl(controlBar);// var toolBar = new AMap.ToolBar({//   position: {//     right: '40px',//     top: '110px'//   }// });// this.map.addControl(toolBar)this.map.on("complete", () => {console.log("地图加载完成");// -------展示警情中心点 this.position --------if (this.position) {// 添加中心点标记var marker = new AMap.Marker({position: new AMap.LngLat(...this.position),icon: new AMap.Icon({image: fireIcon,imageSize: new AMap.Size(26, 34),}),});this.map.add(marker);//设置圆形位置var center = new AMap.LngLat(...this.position);//设置圆的半径大小var radius = [500, 1000, 1500];radius.map((item, i) => {//创建圆形 Circle 实例var circle = new AMap.Circle({center: center, //圆心radius: item, //半径borderWeight: 3, //描边的宽度strokeColor: ["#FF0000", "#1EE3C2", "#3772E9"][i], //轮廓线颜色strokeOpacity: 1, //轮廓线透明度strokeWeight: 2, //轮廓线宽度fillOpacity: 0.1, //圆形填充透明度// strokeStyle: "dashed", //轮廓线样式// strokeDasharray: [10, 10],fillColor: ["#FF0000", "#1EE3C2", "#3772E9"][i], //圆形填充颜色zIndex: 50, //圆形的叠加顺序});//圆形 Circle 对象添加到 Mapthis.map.add(circle);//根据覆盖物范围调整视野this.map.setFitView([circle]);// 获取圆心坐标为center,半径为radius米,最右侧bearing边线上的点function getEdgePointOfCircle(center, radius, bearing) {// 中心经纬度var lat = center[1];var lon = center[0];// 将角度转换为弧度var brngRad = (bearing * Math.PI) / 180;// 地球平均半径,单位米,用于近似计算var R = 6371000;// 计算新坐标的纬度var lat2 = Math.asin(Math.sin((lat * Math.PI) / 180) * Math.cos(radius / R) Math.cos((lat * Math.PI) / 180) *Math.sin(radius / R) *Math.cos(brngRad));// 计算新坐标的经度var lon2 =(lon * Math.PI) / 180 +Math.atan2(Math.sin(brngRad) *Math.sin(radius / R) *Math.cos((lat * Math.PI) / 180),Math.cos(radius / R) -Math.sin((lat * Math.PI) / 180) * Math.sin(lat2));// 转换回度数并返回结果return [(lon2 * 180) / Math.PI, (lat2 * 180) / Math.PI];}// 在圆的边缘添加半径标注let addRadiusLabel = () => {// 计算标注位置,这里简单地将标注放在圆心右侧,根据实际情况调var labelPosition = getEdgePointOfCircle(this.position,item,90);// 创建文本标注var text = new AMap.Text({text: item + "米", //标记显示的文本内容anchor: "center", //设置文本标记锚点位置draggable: false, //是否可拖拽cursor: "pointer", //指定鼠标悬停时的鼠标样式。angle: 0, //点标记的旋转角度style: {//设置文本样式,Object 同 css 样式表padding: ".1rem 0.2rem","border-radius": ".1rem","background-color": "transparent",border: "1px solid rgba(0, 0, 0, 0.5)","border-color": ["#FF0000", "#1EE3C2", "#3772E9"][i],"text-align": "center","font-size": ".1875rem",color: "white",},position: labelPosition, //点标记在地图上显示的位置});text.setMap(this.map); //将文本标记设置到地图上};// 调用函数添加半径标注addRadiusLabel();});}});}).catch((e) => {console.log(e);});},

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

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

相关文章

记VMware网络适配器里的自定义特定虚拟网络一直加载问题解决办法

1、问题描述 VMware网络适配器里的自定义特定虚拟网络一直加载问题: 在自定义:特定虚拟网络选择的时候 没有上图所示的三个选择,而是正在加载虚拟网络.... 如下图所示: 2、解决办法 2.1、原因分析: 是安装时候出现…

安防视频监控/视频汇聚EasyCVR平台浏览器http可以播放,https不能播放,如何解决?

安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台基于云边端一体化架构,兼容性强、支持多协议接入,包括国标GB/T 28181协议、部标JT808、GA/T 1400协议、RTMP、RTSP/Onvif协议、海康Ehome、海康SDK、大华SDK、华为SDK、宇视SDK、乐橙SDK、萤石云SD…

7.15洛谷蓝题

二分答案的两个模板&#xff1a; 1.最小值的最大化&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include<bits/stdc.h> #include<iostream> #include<algorithm> #include<cstring> #include<vector> #include<queue> #include<…

Studying-代码随想录训练营day40| 198.打家劫舍、213.打家劫舍II、337.打家劫舍III

第40天&#xff0c;动态规划part07&#xff0c;动态规划经典题型“打家劫舍”(ง •_•)ง&#xff0c;编程语言&#xff1a;C 目录 198.打家劫舍 213.打家劫舍II 337.打家劫舍III 总结 198.打家劫舍 文档讲解&#xff1a;代码随想录打家劫舍 视频讲解&#xff1a;手…

【C++进阶学习】第七弹——AVL树——树形结构存储数据的经典模块

二叉搜索树&#xff1a;【C进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫-CSDN博客 目录 一、AVL树的概念 二、AVL树的原理与实现 AVL树的节点 AVL树的插入 AVL树的旋转 AVL树的打印 AVL树的检查 三、实现AVL树的完整代码 四、总结 前言&#xff1a…

JavaScript青少年简明教程:输入输出

JavaScript青少年简明教程&#xff1a;输入输出 JavaScript的输入输出情况相对复杂&#xff0c;因为它依赖于其运行的宿主环境&#xff08;如Web浏览器或Node.js&#xff09;来提供具体的输入输出机制。JavaScript的核心规范&#xff08;ECMAScript&#xff09;本身并不直接提…

C基础day9

一、思维导图 二、课后练习 1> 使用递归实现 求 n 的 k 次方 #include<myhead.h>int Pow(int n,int k) {if(k 0 ) //递归出口{return 1;}else{return n*Pow(n,k-1); //递归主体} }int main(int argc, const char *argv[]) {int n0,k0;printf("请输入n和k:&…

韩国coupang上线的卖家官网是什么?韩国电商有哪些平台?

根据Statista的调查报告&#xff0c;预计2024年电子商务市场收入将达到4.117亿美元。而韩国的电子商务市场是全球最具活力和创新性的市场之一&#xff0c;有数据显示2023年韩国电商市场规模已突破1700亿美元&#xff0c;全球排名第四。 韩国coupang上线的卖家官网是什么&#x…

Linux虚拟机扩展磁盘空间

文章目录 在VM上进行扩展新的磁盘空间进入虚拟机将扩展的磁盘空间分配给对应的分区 VM 下的Linux虚拟机提示磁盘空间不足&#xff0c;需要对其进行磁盘扩容&#xff0c;主要有以下两步&#xff1a; 在VM上进行扩展新的磁盘空间 先关闭虚拟机在VM的虚拟机设置处进行硬盘扩展 …

Redislnsight-v2远程连接redis

redis安装内容添加&#xff1a; Linux 下使用Docker安装redis-CSDN博客 点击添加 添加ip地址&#xff0c;密码&#xff0c;端口号 创建完成 点击查看内容&#xff1a;

Redis的单线程讲解与指令学习

目录 一.Redis的命令 二.数据类型 三.Redis的key的过期策略如何实现&#xff1f; 四.Redis为什么是单线程的 五.String有关的命令 Redis的学习专栏&#xff1a;http://t.csdnimg.cn/a8cvV 一.Redis的命令 两个基本命令 在Redis当中&#xff0c;有两个基本命令&#xff1…

记录些MySQL题集(3)

MySQL 分区技术深入解析 分区的基本概念 MySQL分区 是一种数据库优化的技术&#xff0c;它允许将一个大的表、索引或其子集分割成多个较小的、更易于管理的片段&#xff0c;这些片段称为“分区”。每个分区都可以独立于其他分区进行存储、备份、索引和其他操作。这种技术主要…

Docker初识及使用研究

公司使用docker&#xff0c;小组成员人人都是默默使用&#xff0c;也没讲解培训&#xff0c;真是搞笑。 记录自己独自研究及使用&#xff1a; 1)自己安装->失败-系统弄崩->安装成功 目录 1. Docker安装-初次安装失败2. Docker安装-初次安装成功 1. Docker安装-初次安装失…

微信小程序密码 显示隐藏 真机兼容问题

之前使用type来控制&#xff0c;发现不行&#xff0c;修改为password属性即可 <van-fieldright-icon"{{passwordType password? closed-eye:eye-o}}"model:value"{{ password }}"password"{{passwordType password ? true: false}}"borde…

PostgreSQL 中如何解决因长事务阻塞导致的其他事务等待问题?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何解决因长事务阻塞导致的其他事务等待问题&#xff1f;一、了解长事务阻塞的原因&…

结合实体类型信息(2)——基于本体的知识图谱补全深度学习方法

1 引言 1.1 问题 目前KGC和KGE提案的两个主要缺点是:(1)它们没有利用本体信息;(二)对训练时未见的事实和新鲜事物不能预测的。 1.2 解决方案 一种新的知识图嵌入初始化方法。 1.3 结合的信息 知识库中的实体向量表示&#xff0b;编码后的本体信息——>增强 KGC 2基…

思迈特软件2023H2商业智能和分析软件市场份额增长速度跃居第一

近日&#xff0c;全球知名的IT市场研究与咨询公司IDC发布了《中国商业智能和分析软件市场跟踪报告&#xff0c;2023H2》。根据报告显示&#xff0c;思迈特软件在中国商业智能和分析软件市场份额中位列前五&#xff0c;在中国BI厂商中排名TOP2。 尤其值得一提的是&#xff0c;思…

【数据结构】Splay详解

Splay 引入 Splay旋转操作splay操作插入操作查询x排名查询排名为x删除操作查询前驱/后继模板Splay时间复杂度分析 进阶操作截取区间区间加&#xff0c;区间赋值&#xff0c;区间查询&#xff0c;区间最值区间翻转原序列整体插入指定位置插入整体插入末尾区间最大子段和 一些好题…

C++客户端Qt开发——常用控件(按钮类控件)

2.按钮类控件 ①QPushButton 按钮 继承自QAbstractButton&#xff0c;这个类是⼀个抽象类&#xff0c;是其他按钮的父类 属性 说明 text 按钮中的文本 icon 按钮中的图标 iconSize 按钮中图标的尺寸 shortCut 按钮对应的快捷键 autoRepeat 按钮是否会触发&#xff…

AMD software 将两个显示器合并为一个超宽显示器

最近玩游戏的时候&#xff0c;发现了一个骚操作。 可以将两个显示器&#xff08;更多个的自己去试&#xff0c;不知道&#xff09;组合为一个显示器&#xff0c;注意&#xff0c;这里说的不是将两个显示都连接电脑从而使用双屏显示器&#xff0c; 而是 将两个显示器组合为一个…