Vue Baidu Map百度地图圆形覆盖物,设置半径编辑联动

本文主要是介绍Vue Baidu Map百度地图圆形覆盖物,设置半径编辑联动,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近要做一个圆形覆盖物,效果如下:
圆形覆盖物

直接上代码吧

<template><div class="container"><div id="map" ref="map" /><div class="circle-box" v-show="circleShow"><Inputv-model="circlePath.radius"type="number"clearablestyle="width: 200px"@on-keyup="changeRadius"@on-change="changeRadius"/></div></div>
</template>data(){return{circlePath: {center: {lng: 118.81745852770722,lat: 32.03724853269305,},radius: 3000,},circleArr : [], //存储circle覆盖物的数组circleShow: false}
}getCircle() {//左上角input是否展示this.circleShow = true;//初始化地图this.bmap = new BMap.Map("map", { enableMapClick: false });this.bmap.centerAndZoom(new BMap.Point(117.744885, 39.113836), 13);this.bmap.enableScrollWheelZoom(true); // 开启鼠标滚轮缩放let point = this.circlePath.center;let radius = this.circlePath.radius;let circle = new BMap.Circle(point, radius, {strokeColor: "blue",fillOpacity: 0.3,strokeWeight: 1,strokeOpacity: 0.3,}); //创建圆this.bmap.addOverlay(circle);circle.enableEditing();this.circleArr.push(circle);if (point != null) {circle.addEventListener("lineupdate", this.updateCirclePath);}},showRadius(obj) {if (obj.radius) {this.circlePath.radius = obj.radius;} else {this.circlePath.radius = circle.getRadius();}},changeRadius() {let point = this.circlePath.center;//清除圆形覆盖物for (let i = 0; i < this.circleArr.length; i++) {this.bmap.removeOverlay(this.circleArr[i]);}let circleRadius = parseInt(this.circlePath.radius); //获取用户设置的半径值//清除完毕后重新制作圆形覆盖物let circle = new BMap.Circle(point, circleRadius, {strokeColor: "blue",fillOpacity: 0.3,strokeWeight: 1,strokeOpacity: 0.3,});circle.setRadius(circleRadius); //设置圆形覆盖物的半径this.bmap.addOverlay(circle); //将圆形覆盖物添加到地图上circle.enableEditing(); //设置圆形覆盖物可编辑this.circleArr.push(circle); //将该园形覆盖物存于数组中,以便再次设置之前进行清除//调用showRadius方法this.showRadius({point: circle.point,radius: circleRadius,});if (point != null) {//为圆行覆盖物添加监听事件circle.addEventListener("lineupdate", this.updateCirclePath);}},updateCirclePath(e) {this.circlePath.center = e.target.getCenter();this.circlePath.radius = e.target.getRadius();let center = e.target.getCenter();let radius = e.target.getRadius();this.showRadius({point: center,radius: radius});},//清除覆盖物hideCircle() {this.circleShow = false;for (let i = 0; i < this.circleArr.length; i++) {this.bmap.removeOverlay(this.circleArr[i]);}},

这篇关于Vue Baidu Map百度地图圆形覆盖物,设置半径编辑联动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/308968

相关文章

Ubuntu中Nginx虚拟主机设置的项目实践

《Ubuntu中Nginx虚拟主机设置的项目实践》通过配置虚拟主机,可以在同一台服务器上运行多个独立的网站,本文主要介绍了Ubuntu中Nginx虚拟主机设置的项目实践,具有一定的参考价值,感兴趣的可... 目录简介安装 Nginx创建虚拟主机1. 创建网站目录2. 创建默认索引文件3. 配置 Nginx4

Nginx实现前端灰度发布

《Nginx实现前端灰度发布》灰度发布是一种重要的策略,它允许我们在不影响所有用户的情况下,逐步推出新功能或更新,通过灰度发布,我们可以测试新版本的稳定性和性能,下面就来介绍一下前端灰度发布的使用,感... 目录前言一、基于权重的流量分配二、基于 Cookie 的分流三、基于请求头的分流四、基于请求参数的分

JavaScript中的Map用法完全指南

《JavaScript中的Map用法完全指南》:本文主要介绍JavaScript中Map用法的相关资料,通过实例讲解了Map的创建、常用方法和迭代方式,还探讨了Map与对象的区别,并通过一个例子展... 目录引言1. 创建 Map2. Map 和对象的对比3. Map 的常用方法3.1 set(key, v

基于Canvas的Html5多时区动态时钟实战代码

《基于Canvas的Html5多时区动态时钟实战代码》:本文主要介绍了如何使用Canvas在HTML5上实现一个多时区动态时钟的web展示,通过Canvas的API,可以绘制出6个不同城市的时钟,并且这些时钟可以动态转动,每个时钟上都会标注出对应的24小时制时间,详细内容请阅读本文,希望能对你有所帮助...

HTML5 data-*自定义数据属性的示例代码

《HTML5data-*自定义数据属性的示例代码》HTML5的自定义数据属性(data-*)提供了一种标准化的方法在HTML元素上存储额外信息,可以通过JavaScript访问、修改和在CSS中使用... 目录引言基本概念使用自定义数据属性1. 在 html 中定义2. 通过 JavaScript 访问3.

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触

CSS模拟 html 的 title 属性(鼠标悬浮显示提示文字效果)

《CSS模拟html的title属性(鼠标悬浮显示提示文字效果)》:本文主要介绍了如何使用CSS模拟HTML的title属性,通过鼠标悬浮显示提示文字效果,通过设置`.tipBox`和`.tipBox.tipContent`的样式,实现了提示内容的隐藏和显示,详细内容请阅读本文,希望能对你有所帮助... 效

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

前端bug调试的方法技巧及常见错误

《前端bug调试的方法技巧及常见错误》:本文主要介绍编程中常见的报错和Bug,以及调试的重要性,调试的基本流程是通过缩小范围来定位问题,并给出了推测法、删除代码法、console调试和debugg... 目录调试基本流程调试方法排查bug的两大技巧如何看控制台报错前端常见错误取值调用报错资源引入错误解析错误

Golang中map缩容的实现

《Golang中map缩容的实现》本文主要介绍了Go语言中map的扩缩容机制,包括grow和hashGrow方法的处理,具有一定的参考价值,感兴趣的可以了解一下... 目录基本分析带来的隐患为什么不支持缩容基本分析在 Go 底层源码 src/runtime/map.go 中,扩缩容的处理方法是 grow