【vue+amap】高德地图绘制多边形区域

在这里插入图片描述

参考文档:
高德地图参考手册
高德地图示例代码

1、高德地图控制台创建应用,获取权限ak

高德地图控制台
在这里插入图片描述

Ps.本项目里按钮等基础控件使用的是element-ui版本控件

2、项目内全局引入

index.html内引入高德地图代码:

<script type="text/javascript">window._AMapSecurityConfig = {securityJsCode: "你的安全密钥"};</script><scripttype="text/javascript"src="https://webapi.amap.com/maps?v=1.4.6&key=你的key"></script><scripttype="text/javascript"src="http://webapi.amap.com/maps?v=1.4.6&key=你的key&plugin=AMap.PolyEditor&plugin=AMap.MouseTool"></script>

在这里插入图片描述

3、完整项目代码

template:

<template><div class="map-wrap"><div><h1>{{ msg }}</h1><div class="flex"><div class="button-wrap"><el-buttonsize="small"type="primary"icon="el-icon-edit"@click="handleDraw">绘制</el-button><el-button size="small" icon="el-icon-add" @click="handelFinishDraw">完成</el-button><el-buttonsize="small"icon="el-icon-refresh-left"@click="handleClearDraw">重置</el-button></div><div class="picker-color" v-if="isediting"><div class="text">选择颜色</div><span@click="handleChangeColor(item)"v-for="item in colors":key="item.code":class="['color' + item.code,drawColor == item.value ? 'active' : '',]"><i v-if="drawColor == item.value" class="el-icon-check"></i><i v-else>&nbsp;</i></span></div></div></div><div style="width: 1200px; height: 500px; padding-left: calc(50% - 600px)"><div id="container"></div></div></div>
</template>

js:


<script>
export default {name: "Map",data() {return {msg: "地图绘制展示页",map: null,poly: null,drawColor: "#2A8DFF",colors: [{ code: 1, value: "#FF6B36" },{ code: 2, value: "#FFAD29" },{ code: 3, value: "#FFDA21" },{ code: 4, value: "#29E98F" },{ code: 5, value: "#1EEDE6" },{ code: 6, value: "#2A8DFF" },{ code: 7, value: "#CC16EF" },{ code: 8, value: "#F53ABD" },],paths: [[111.683736, 40.818554],[111.684444, 40.816971],[111.689036, 40.818172],[111.688264, 40.819788],],mouseOverEvent: true,isediting: false,tool: null,};},created() {this.$nextTick(() => {this.createMap();});},methods: {createMap() {// 地图创建var map = new AMap.Map("container", {zoom: 11, //级别center: [111.688264, 40.818205], //兴泰御都国际viewMode: "3D", //使用3D视图});// 添加一个标记点var marker = new AMap.LabelMarker({icon: "http://a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png",position: [111.687931, 40.818392],offset: new AMap.Pixel(-10, -30),text: {content: "东方国信",direction: "right",style: {fontSize: 15,fillColor: "#fff",strokeColor: "rgba(255,255,0,0.5)",strokeWidth: 2,padding: [3, 10],backgroundColor: "blue",borderColor: "#ccc",borderWidth: 3,},},});var labelsLayer = new AMap.LabelsLayer({collision: true,});labelsLayer.add(marker);// 将 LabelMarker 实例添加到 LabelsLayer 上map.add(labelsLayer);// 将 LabelsLayer 添加到地图上// 创建默认区域var polygon = new AMap.Polygon({path: this.paths,strokeColor: "#fff",strokeWeight: 6,strokeOpacity: 0.2,fillOpacity: 0.4,fillColor: this.drawColor,zIndex: 50,});map.add(polygon);map.setFitView([polygon]); // 缩放地图到合适的视野级别this.map = map;// 如果后期想修改默认区域:修改this.poly即可// var polyEditor = new AMap.PolyEditor(map, polygon);// this.poly = polyEditor;},/* 操作按钮 */// 编辑handleDraw() {// this.poly.open();this.isediting = true;var mouseTool = new AMap.MouseTool(this.map);this.tool = mouseTool;mouseTool.polygon({strokeColor: "#FFF",strokeOpacity: 1,strokeWeight: 6,strokeOpacity: 0.2,fillColor: this.drawColor,fillOpacity: 0.4,strokeStyle: "solid",});mouseTool.on("draw", function (event) {console.log("覆盖物对象绘制完成:", event.obj);// event.obj 为绘制出来的覆盖物对象});},handelFinishDraw() {this.isediting = false;this.tool.close();},//重置handleClearDraw() {this.isediting = false;this.tool.close(true);},//切换颜色handleChangeColor(item) {this.drawColor = item.value;this.tool.polygon({strokeColor: "#FFF",strokeOpacity: 1,strokeWeight: 6,strokeOpacity: 0.2,fillColor: this.drawColor,fillOpacity: 0.4,strokeStyle: "solid",});},},
};
</script>

css:

<style scoped>
h1 {font-weight: normal;
}
#container {width: 100%;height: 100%;
}
.map-wrap {position: relative;width: 100%;height: 100%;
}
.map-wrap .flex {display: flex;flex-shrink: 0;white-space: nowrap;justify-content: space-between;align-items: center;height: 50px;line-height: 50px;width: 1200px;padding-left: calc(50% - 600px);
}
.allmap {width: 100%;height: calc(100% - 50px);position: absolute;
}
ul {list-style: none;
}
.picker-color {text-align: right;padding-right: 30px;
}
.text {display: inline-block;padding: 0 10px;float: left;
}
span {display: inline-block;width: 24px;height: 24px;line-height: 20px;border-radius: 4px;border-width: 2px;border-style: solid;margin-left: 8px;overflow: hidden;text-align: center;margin-top: 10px;float: left;
}
span i {font-weight: 600;
}
.color1 {border-color: #ff6b36;background: rgba(255, 107, 54, 0.3);color: #ff6b36;
}
.color2 {border-color: #ffad29;background: rgba(255, 173, 41, 0.3);color: #ffad29;
}
.color3 {border-color: #ffda21;background: rgba(255, 218, 33, 0.3);color: #ffda21;
}
.color4 {border-color: #29e98f;background: rgba(41, 233, 143, 0.3);color: #29e98f;
}
.color5 {border-color: #1eede6;background: rgba(30, 237, 230, 0.3);color: #1eede6;
}
.color6 {border-color: #2a8dff;background: rgba(42, 141, 255, 0.3);color: #2a8dff;
}
.color7 {border-color: #cc16ef;background: rgba(204, 22, 239, 0.3);color: #cc16ef;
}
.color8 {border-color: #f53abd;background: rgba(245, 58, 189, 0.3);color: #f53abd;
}
</style>

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

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

相关文章

使用手机作为电脑的麦克风和摄像头外设

工具 Iriun Iriun 电脑端安装&#xff1a;Iriun Android: Iriun 4K Webcam for PC and Mac - Apps on Google Play Apple: Iriun Webcam for PC and Mac on the App Store 基础功能免费&#xff0c;普通使用足够了。 付费功能&#xff1a; 使用 这里有介绍&#xff1a…

【ArcGIS处理】行政区划与流域区划间转化

【ArcGIS处理】行政区划与流域区划间转化 引言数据准备1、行政区划数据2、流域区划数据 ArcGIS详细处理步骤Step1&#xff1a;统计行政区划下子流域面积1、创建批量处理模型2、添加批量裁剪处理3、添加计算面积 Step2&#xff1a;根据子流域面积占比均化得到各行政区固定值 参考…

Android 摇一摇功能实现,重力加速度大于15

最近接到需求实现摇一摇需求&#xff0c;不过这个法律限制的很严格&#xff0c;属于敏感地带&#xff0c;实现后又被叫停了。 法律要求&#xff1a; 如果按照规定&#xff0c;操作时间不少于3s就基本没什么跳转了。 实现的话&#xff0c;只考虑了第一条&#xff0c;即&#…

太可怕啦!我在网上发了个贴,就被GPT-4推断出了个人隐私!GPT-4化身福尔摩斯

最近 GPT-4 被人发现了具有“福尔摩斯”一样的能力&#xff01; 可以仅仅通过帖子内容来推测出用户的隐私&#xff01; 瑞士苏黎世联邦理工学院的研究人员发现大语言模型可以对用户发在Reddit 帖子进行深度分析&#xff0c;并成功“猜测”出用户的年龄、地点、性别和收入等个…

Openssl X509 v3 AuthorityKeyIdentifier实验与逻辑分析

Openssl是X509的事实标准&#xff0c;目前主流OS或个别安全性要求较高的设计场景&#xff0c;对X509的证书链验证已经不在停留在只从数字签名校验了&#xff0c;也就是仅仅从公钥验签的角度&#xff0c;在这些场景中&#xff0c;往往还会校验AuthorityKeyIdentifier和SubjectKe…

2023年阿里云双11优惠活动,省钱攻略来了!

2023阿里云双11优惠活动开启了&#xff0c;轻量2核2G3M带宽服务器87元一年、2核4G4M带宽165元一年&#xff0c;云服务器ECS经济型e实例2核2G3M固定带宽优惠价格99元一年&#xff0c;新老用户同享&#xff0c;并且续费不涨价&#xff0c;第二年99元续费。阿里云个人和企业用户还…

抽象 I/O设备模型

I/O设备模型框架 RT-Thread提供了一套简单的I/O设备模型框架。 如图所示&#xff0c;它位于硬件和应用程序之间&#xff0c;共分成三层&#xff0c;从上到下分别是I/O设备管理层、设备驱动框架层、设备驱动层。 应用程序通过I/O设备管理接口获得正确的设备驱动&#xff0c;然…

PC6410 DC-DC降压调整器低纹波高效率低功耗

PC6410是一款由基准电压源、振荡电路、比较器、PWM/PFM 控制电路等构成的CMOS降压DC/DC调整器。利用PWM/PFM自动切换控制电路达到可调占空比&#xff0c;具有全输入电压范围内的低纹波、高效率和大输出电流等特点。PC6410内置功率MOSFET&#xff0c;使用过压、过流、过热、短路…

为什么串行通信中停止位(停止bit、stop bit)通常使用高电平?

文章目录 基于高电平的停止位选择&#xff1a;理解其深层原因引言数据通信和停止位数据通信简介停止位的定义和作用 为什么选择高电平作为停止位&#xff1f;硬件的考虑误码率的影响 总结参考资料 基于高电平的停止位选择&#xff1a;理解其深层原因 引言 在数字通信中&#…

索引是什么?如何创建?哪些情况下需要使用?

在数据库中&#xff0c;索引是一种用于提高查询速度的数据结构。它可以帮助我们快速地找到需要的数据&#xff0c;而不必扫描整个数据库。如果你是一名业务人员&#xff0c;你可能会问&#xff1a;“为什么我们需要使用索引&#xff1f;” 一、什么是索引&#xff1f; 索引是一…

【word密码】word设置只读方式的四个方法

想要将word文档设置为只读模式&#xff0c;方法有很多&#xff0c;今天小奥超人介绍几个方法给大家。 方法一&#xff1a;文件属性 常见的、简单的设置方法&#xff0c;不用打开word文件&#xff0c;只需要右键选择文件&#xff0c;打开文件属性&#xff0c;勾选上【只读】选…

settings.json配置

settings.json配置 {"editor.tabSize": 2,"git.ignoreWindowsGit27Warning": true,"workbench.editor.untitled.hint": "hidden","security.workspace.trust.untrustedFiles": "open","[vue]": {"…