高德地图:标点-连线-自定义图标-文字提示的使用

news2024/11/29 2:45:58

目录

下面是使用高德地图进行标点连线的使用:

1.定义一个装载地图的容器,并定义进行标点和连线的数据

 2.在组件的mounted钩子函数中初始化地图,给地图添加点击事件监听器。

3.使用高德地图的Polyline类来绘制连接线。

这是上面代码的效果:

4.使用自定义图标

5. 设置点标注的文本标签及提示

这是使用了自定义图标及文字提示的效果:


下面是使用高德地图进行标点连线的使用:

1.定义一个装载地图的容器,并定义进行标点和连线的数据

<template>  
    <div class="mapContent" id="mapId"></div>
</template>  
  
<script>  
export default {  
  data() {  
    return {  
      map: null,  
      markers: [], // 存储标记的经纬度  
      polyline: null, // 线条对象  
    };  
  },
//....
<style scoped>  
.mapContent {  
  width: 100%;  
  height: 400px;  
}  
</style>

 2.在组件的mounted钩子函数中初始化地图,给地图添加点击事件监听器。

当点击地图时,获取点击的经纬度,并在该位置添加一个标记(Marker),每次点击地图时,将标记的经纬度存储在一个数组中(markers)。

 mounted() {  
    this.initMap();  
  },  
  methods: {  
    initMap() {  
      // 初始化地图  
      this.map = new AMap.Map("mapId", {
        resizeEnable: true,  
        zoom: 14,
        center: [ this.longitude,this.latitude],
      });
  
      // 添加点击事件监听器  
      this.map.on('click', (e) => {  
        // 添加标记  
        const marker = new AMap.Marker({  
          position: e.lnglat,  
          map: this.map,  
        });  
  
        // 存储标记的经纬度  
        this.markers.push(e.lnglat);  
  
        // 绘制连接线  
        this.drawPolyline();  
      });  
    },  

 其中 e.lnglat的输出为下面这个,其实就是经纬度:

下面是官方文档的说明:

经纬度坐标,用来描述地图上的一个点位置, 目前高德地图使用的是 GCJ-02 坐标,如果你采集的是 WGS84 坐标,请先进行坐标转换.

构造一个地理坐标对象:

//构造一个地理坐标对象
new AMap.LngLat(lng: Number?, lat: Number?, noWrap: Boolean?)
​
//参数说明:lng (Number?) 经度值 ;lat (Number?) 纬度值 
//noWrap (Boolean?) 是否自动将经度值修正到 [-180,180] 区间内,缺省时为false。
//noWrap 为false时传入 [190,30] ,会被自动修正为 [-170,30] , noWrap 为true时不会自动修正,
//可以用来进行跨日期限的覆盖物绘制
​

3.使用高德地图的Polyline绘制连接线

可以遍历存储的经纬度数组,并使用这些经纬度来绘制线条。注意,需要确保线条按照标记添加的顺序来绘制。

添加新的标记时,你需要清除旧的线条并绘制一个新的线条。

下面是绘制线条的代码,以及部分使用属性是什么:

    drawPolyline() {  
      // 清除旧的线条(如果有)  
      if (this.polyline) {  
        this.map.remove(this.polyline);  
      }  
  
      // 使用存储的经纬度数组绘制新的线条  
      this.polyline = new AMap.Polyline({  
        path: this.markers,  
        isOutline: true,     //是否绘制线条的轮廓
        outlineColor: '#ffeeee',  //轮廓的颜色
        borderWeight: 2,   //轮廓的线条宽度
        strokeColor: '#3366FF',  //线条的主颜色
        strokeWeight: 5,    //线条的宽度
        lineJoin: 'round',  //定义线条段之间如何连接的样式
//round表示以圆角连接,bevel表示以斜角连接,miter表示以尖角连接。
        lineCap: 'round', //定义线条端点的样式
//round表示以圆角结束,butt表示以平头结束,square表示以方形结束。 
        zIndex: 50,  //线条的堆叠顺序。数值较大的线条将显示在数值较小的线条之上。
        map: this.map,  //线条应该被添加到哪个地图上。this.map是你已经初始化好的高德地图对象。
      });  
    }, 

这是上面代码的效果:

大部分都是默认的样子,标点默认为蓝色,我就是改了下线的颜色为粉色(就是喜欢粉色),

通过你点击的顺序进行连线,意思就是你像旅游一样,先去这再去那,有个先后。

4.使用自定义图标

在原来的点击事件中,通过new AMap.Icon创建一个自定义图标,并在marker中使用。

我这个下面的是随便在网上找的一个蜡笔小新的动图,可能不好看

  // 添加点击事件监听器  
      this.map.on('click', (e) => {  
        console.log(e,'eee');
              // 自定义Marker图标  
      const markerIcon = new AMap.Icon({  
        image: 'https://ts1.cn.mm.bing.net/th/id/R-C.894192678c93158f2a4bf7f8a59cc0a3?rik=BDxJFQ5xVq3AqA&riu=http%3a%2f%2fimg.520touxiang.com%2fuploads%2fallimg%2f160527%2f3-16052G55601.gif&ehk=I7rXEktiDfSaYMyLV9%2flqjkKb4aiXfphHLxpTsstG34%3d&risl=&pid=ImgRaw&r=0', // 图标图片URL 
        size: new AMap.Size(100, 100),  //图标所处区域大小
	      imageSize: new AMap.Size(100,100), //图标大小
        imageOffset: new AMap.Pixel(-10, -32), // 图片相对于Marker定位点的偏移  
      });  

        // 添加标记  
        const marker = new AMap.Marker({  
          position: e.lnglat,  
          map: this.map,  
          icon: markerIcon, // 设置自定义图标  
          zIndex: 100, // 设置堆叠顺序  
        });  

;  

      }); 

5. 设置点标注的文本标签及提示

在原来的基础上通过通过setTitle方法设置文字提示,再通过label属性给Marker设置文本标签

具体代码及解释如下:

        //...
 // 添加标记  
        const marker = new AMap.Marker({  
      //...
        });         

// 设置鼠标划过点标记显示的文字提示
        const {lat,lng}=e.lnglat
    marker.setTitle(`经纬度:[${lng},${lat}]`);

// 设置label标签
// label默认蓝框白底左上角显示,样式className为:amap-marker-label
marker.setLabel({
    offset: new AMap.Pixel(20, 20),  //设置文本标注偏移量
    content: "<div class='info'>我是 marker 的 label 标签 <br/><span>我是蜡笔小新</span></div>", //设置文本标注内容
    direction: 'top' //设置文本标注方位,也可以设置其他方向
});

这是使用了自定义图标及文字提示的效果:

鼠标经过图片是会显示当前点位置的经纬度,label显示于顶部,显示的方向可修改为left,right之类。

蜡笔小新是动图,在这是能正常使用的,我也想让他动,但是由于下面这是截图就是动不了。

 ok,结束啦,以上内容自己可以根据需求进行修改哦

希望对大家有帮助,谢谢!

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

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

相关文章

人工智能生成图像的兴起:区分事实与虚构

人工智能生成图像的兴起&#xff1a;区分事实与虚构 概述 在人工智能 (AI) 已融入我们日常生活的时代&#xff0c;人工智能生成图像的快速发展引发了人们对数字内容真实性的担忧。最近&#xff0c;人工智能生成的图像甚至欺骗了最敏锐的眼睛&#xff0c;这引发了人们对批判性…

Shell生成支持x264的ffmpeg安卓全平台so

安卓 FFmpeg系列 第一章 Ubuntu生成ffmpeg安卓全平台so 第二章 Windows生成ffmpeg安卓全平台so 第三章 生成支持x264的ffmpeg安卓全平台so&#xff08;本章&#xff09; 文章目录 安卓 FFmpeg系列前言一、实现步骤1、下载x264源码2、交叉编译生成.a3、加入x264配置4、编译ffmp…

数字水印 | Python 基于离散小波变换 DWT 的图像水印嵌入(下)

&#x1f34d;原文&#xff1a; 基于 dwt (离散小波变换) 实现彩色图像水印嵌入部分_2.0 &#x1f34d;写在前面&#xff1a; 本文在原文的基础上进行了代码补全。 正文 修改了尺寸变换导致的图像失真问题&#xff0c;同时简化了部分代码。 效果确实很好&#x1f609; 1 通道…

15W 3KVAC隔离 宽电压输入 AC/DC 电源模块——TP15AL系列

TP15AL系列产品是一款小体积裸板式电源,该系列电源输出功率为15W,具有低漏电流小于0.35mA,隔离耐压高达3KV等特点。产品安全可靠&#xff0c;EMC性能好&#xff0c;该系列产品广泛应用于智能家居、充电桩、安防、物联、工控等行业中&#xff0c;如应用于电磁兼容比较恶劣的环境…

Kerberos修改协议为TCP

部署前 修改模板/home/cloud-setup/deploy-forklift/mids/forklift-basic/kde/v1.0/impl/plays/roles/krb5-client/templates/krb5.conf.j2 添加如下参数 udp_preference_limit 1 部署后 界面修改 添加如下参数&#xff0c;并勾选下发配置按钮&#xff0c;重启刷新服务

Linux-04

账号管理 添加账号 useradd 选项 用户名 useradd -m dai删除帐号 userdel 选项 用户名 userdel -r dai修改帐号 usermod 选项 用户名usermod -d /home/user dai &#xff08;修改位置&#xff09;切换帐号 su username su dai退出账号 exit $表示普通用户 #表示超级用户&#…

源代码防泄密的关键点:烧录管控

源代码作为企业技术核心的一部分&#xff0c;其保密性和安全性显得尤为重要。然而&#xff0c;随着开源文化的发展&#xff0c;以及开发过程中不可避免的与外界交流&#xff0c;源代码防泄密工作面临着前所未有的挑战。特别是在烧录过程中&#xff0c;由于涉及到硬件层面的操作…

PyWebIO,用 Python 写网站

在Python的世界里&#xff0c;PyWebIO是一个简单而强大的库&#xff0c;它能让你的Python脚本快速拥有一个交互式的网页界面。想象一下&#xff0c;你不需要懂得前端开发&#xff0c;就能创建出用户友好的网页应用&#xff0c;这是多么酷的一件事&#xff01;今天&#xff0c;我…

排序-快速排序(Quick Sort)

快排的简介 快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;采用分治法的策略&#xff0c;其基本思想是选择一个基准元素&#xff0c;通过一趟排序将待排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据要…

aop获取方法运行时间

Slf4j Component Aspect//aop类 public class TimeAspect {/*Around 环绕通知 用ProceedingJoinPoint Before 前置通知 用JoinPoint&#xff08;是ProceedingJoinPoint的父类型&#xff09;&#xff0c;用它可以获得方法执行的相关信息&#xff0c;如目标类名&#xff0c;方法…

我是如何免费抵御一个多月的 DDos/CC 攻击的?

今天明月给大家详细分享一下我的博客是如何免费抵御了长达一个多月的 DDos/CC 攻击的&#xff0c;在【现在 DDos/CC 攻击门槛低的可怕&#xff01;】一文里明月就说过现在 DDos/CC 攻击几乎是没有门槛的&#xff0c;任何一个老鼠屎在群里看到你的博客都可以轻松便捷的发动一次 …

ADOP带你了解:800G OSFP光收发器:演进发布

引言 随着云计算、大数据和人工智能等技术的不断进步&#xff0c;对数据中心的带宽和处理能力要求也在不断提高。在这样的背景下&#xff0c;800G OSFP光收发器的问世&#xff0c;为我们提供了更高速度和更高效率的数据传输解决方案。 800G OSFP光收发器演进路线 路线 1&…

CSS3私有前缀+新增盒模型相关属性+新增背景属性(如果想知道CSS3私有前缀、新增盒模型相关属性的知识点,那么只看这一篇就足够了!)

前言&#xff1a;CSS3 是CSS2 的升级版本&#xff0c;它在CSS2 的基础上&#xff0c;新增了很多强大的新功能&#xff0c;从而解决一些实际面临的问题。 ✨✨✨这里是秋刀鱼不做梦的BLOG ✨✨✨想要了解更多内容可以访问我的主页秋刀鱼不做梦-CSDN博客 先让我们看一下本篇文章的…

vue3 自定义调控参数-简易生成器

vue3 自定义调控参数-简易生成器 文章目录 封装生成器控件如下父组件使用如下&#xff1a; 此功能好像是某厂的在线视频笔试题&#xff0c;当时写完也没有结果。。。我觉得此 demo 适用场景&#xff1a;自定义动态表单时需要定制字段、用户自定义信息等 封装生成器控件如下 /…

阿里云短信提示被攻击怎么解决!!

你是否收到过这样的短信&#xff0c;【阿里云】尊敬的用户&#xff1a;您的IP: 实例名称&#xff1a; 受到攻击流量已超过云盾DDoS基础防护的带宽峰值&#xff0c;服务器的所有访问已被屏蔽&#xff0c;如果35分钟后攻击停止将自动解除否则会延期解除。详情请登录云盾控制台DDo…

SPSS之主成分分析

SPSS中主成分分析功能在【分析】--【降维】--【因子分析】中完成&#xff08;在SPSS软件中&#xff0c;主成分分析与因子分析均在【因子分析】模块中完成&#xff09;。 求解主成分通常从分析原始变量的协方差矩阵或相关矩阵着手。 &#xff08;1&#xff09;当变量取值的度量…

MySQL中的子查询

子查询,在一个查询语句中又出现了查询语句 子查询可以出现在from和where后面 from 表子查询(结果一般为多行多列)把查询结果继续当一张表对待 where 标量子查询(结果集只有一行一列)查询身高最高的学生,查询到一个最高身高 列子查询(结果集只有一行多列) 对上表进行如下操作 …

STM32 PWM 计数器模式和对齐

STM32 PWM 计数器模式和对齐 1. TIM高级定时器简介2. TIM计数模式2.1 向上计数2.2 向下计数2.3 中心对齐模式&#xff08;向上/向下计数&#xff09;2.4 重复计数 3. PWM输出模式3.1 举例看下PWM中心对齐模式&#xff0c;设置参数如下&#xff1a; 4. FOC中PWM相关设置说明4.1 …

webpack如何自定义一个loader

我们在使用脚手架的搭建项目的时候往往都会帮我们配置好所需的loader&#xff0c;接下来讲一下我们要如何自己写一个loader应用到项目中&#xff08;完整代码在最后&#xff09; 1. 首先搭建一个项目并找到webpack配置文件&#xff08;webpack.config.js&#xff09; 在modul…

arcgis_滑坡易发性评价数据处理过程

arcgis_LSM数据处理过程 地形因子处理环境因子处理获取坐标点的方法arcgis问题arcgis进行克里格插值更改投影方式中国地质数据下载站python矢量转栅格重采样设置像元大小一致,设置环境保证栅格对齐 地形因子处理 原始数据:DEM Elevation: 重采样 Slope、Aspect 设置环境保障…