高德地图自定义折线矢量图形

news/2024/12/25 10:16:25/

实现的功能:通过点标记连接生成线  实现折线适量图形

进一步实现功能:1.对指定点进行拖拽

                             2.从多个点中删除指定点

// 初始化地图map.value = new AMap.Map('g-container', {resizeEnable: true,center: [longitude, latitude],layers: [// 卫星new AMap.TileLayer.Satellite(),// 路网new AMap.TileLayer.RoadNet(),],zoom: 16, // 地图显示的缩放级别zooms: [0, 19], // 设置缩放级别范围为3至16})map.value.on('click', (e: any) => {console.log('点击地图', e)table.value.ruleForm.LngLat.push([e.lnglat.lng, e.lnglat.lat])table.value.ruleForm.from.push({//需要上传的数据})map.value.clearMap() // 清理地图inMake(table.value.ruleForm.from.length)inLine(map.value)})//将点标记在地图上
const markers: any = ref([])
const markerIndexs: any = ref(null)
const isMaker = ref(true)
const inMake = (length: any) => {// 先进行清空方便后续功能不出现重复点markers.value = []// 点击每个点选中显示在地图上table.value.ruleForm.from.forEach((i: any, index, arr) => {const markerContent ='' + '<div class="red-circle">' + `<span>${index + 1}</span>` + '</div>' + `<div class="close-btn" onclick="clearMarker(${index})">X</div>`const markerContent2 ='' + '<div class="red-circle2">' + `<span>${index + 1}</span>` + '</div>'const position = [i.lng || i.longitude, i.lat || i.latitude]console.log('markerContent2', markerContent2)const marker = new AMap.Marker({position: position,content: length - 1 === index ? markerContent2 : markerContent,offset: new AMap.Pixel(-19, -49),draggable: true,})markerIndexs.value = lengthmarker.index = imap.value.add(marker)marker.on('click', function (e) {const markerIndex = markers.value.indexOf(this)console.log('标记点', markerIndex)if (markerIndex !== -1) {// alert('点击的是第 ' + (markerIndex + 1) + ' 个点');inMake(markerIndex + 1)markerIndexs.value = markerIndex + 1}})//实现点拖拽功能marker.on('dragend', (event) => {console.log('event', event)table.value.ruleForm.from[index].longitude = event.lnglat.lngtable.value.ruleForm.from[index].latitude = event.lnglat.lattable.value.ruleForm.from[index].point = {point: event.lnglat.lng + ',' + event.lnglat.lat,}table.value.ruleForm.LngLat[index] = [event.lnglat.lng, event.lnglat.lat]map.value.clearMap()inMake(markerIndexs.value)inLine(map.value)})// 将标记添加到标记数组markers.value.push(marker)if (isMaker.value) {map.value.setFitView()isMaker.value = false}})
}//根据点生成线
const polyline: any = ref(null)
const inLine = (map: any) => {polyline.value = new AMap.Polyline({path: table.value.ruleForm.LngLat,isOutline: true,outlineColor: '#ffeeff',borderWeight: 3,strokeColor: '#3366FF',strokeOpacity: 1,strokeWeight: 6,// 折线样式还支持 'dashed'strokeStyle: 'solid',// strokeStyle是dashed时有效strokeDasharray: [10, 5],lineJoin: 'round',lineCap: 'round',zIndex: 50,draggable: false,})polyline.value.setMap(map)
}//删除对应点标记
window.clearMarker = (index:Number) => {console.log('点击删除', index)table.value.ruleForm.LngLat.splice(index, 1)table.value.ruleForm.from.splice(index, 1)map.value.clearMap()inMake(markerIndexs.value)inLine(map.value)
}

http://www.ppmy.cn/news/1557962.html

相关文章

用套接字的UDP,TCP知道什么是HTTP吗?

文章目录 UDP和TCP七层网络架构Omnipeek抓包分析举例图片备注code参考code HTTP协议的构成 UDP和TCP UDP&#xff08;User Datagram Protocol&#xff0c;用户数据报协议&#xff09; 和 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09; 是…

springboot483基于springboot的校园失物招领系统(论文+源码)_kaic

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统校园失物招领系统信息管理难度大&#xff0c;容错率低&am…

MCU 功耗基准测试

电池供电设备的开发人员通常面临着提供高水平的功能和性能&#xff0c;同时限度地延长电池寿命的挑战。水流量计和燃气流量计、医疗监控设备和远程传感器等应用通常需要单块电池的电池寿命长达数月甚至数年。在某些情况下&#xff0c;开发人员还面临着开发完全没有电池的下一代…

vue中做一个最多输入一位小数且可以为负数的输入框(包含最前面最后面为小数点及多个-符号与前导零校验)

需求背景 日常开发中会有对input做校验的需求 例如做一个只可以输入一位小数及可以为负数的输入框 这时候会出现0开头、多个--、多个小数点插入或开头结尾为小数点的情况 实现过程 <el-inputstyle"width: 80px;"v-model"dataForm.low"input"l…

Ubuntu20.4 VPN+Docker代理配置

1.VPN:clash-for-Linux 首先配置VPN https://zhuanlan.zhihu.com/p/2852384493 2.配置docker 前面的步骤正常参照Ubuntu20.4配置docker的步骤 ubuntu20.04 安装docker (详细版)【24】_docker ubuntu image-CSDN博客 但是在run hello-world的时候总是显示超时连接 配置Doc…

信息安全技术——物理环境与设备安全、虚拟专用网

物理环境与设备安全 物理安全和设备安全 物理安全风险主要指由于周边环境和物理特性引起的设备和线路的不可用&#xff0c;而造成系统的不可用。 例如&#xff1a;设备被盗、设备老化、意外故障、无线电磁辐射泄密等。 设备安全包含防盗&#xff0c;容灾等内容 机房物理位置…

Cpp摘记:函数指针、函数模版、类模板

Cpp摘记&#xff1a;函数指针、函数模版、类模板 1. 函数指针2. 函数模版3. 类模板 1. 函数指针 \qquad 函数指针是一个很有意思的功能&#xff0c;在阅读代码的时候深有感触。一般所说的指针是指向变量&#xff0c;可以用指针指向不同变量的地址&#xff1b;函数指针也类似&am…

如何永久解决Apache Struts文件上传漏洞

Apache Struts又双叒叕爆文件上传漏洞了。 自Apache Struts框架发布以来&#xff0c;就存在多个版本的漏洞&#xff0c;其中一些漏洞涉及到文件上传功能。这些漏洞可能允许攻击者通过构造特定的请求来绕过安全限制&#xff0c;从而上传恶意文件。虽然每次官方都发布补丁进行修…