vue 使用腾讯地图 标点 自定义瓦片 折线配置

vue 使用腾讯地图 标点 自定义瓦片 折线配置

  1. 申请腾讯地图秘钥 key
    腾讯地图开发者 https://lbs.qq.com/dev/console/application/mine
    腾讯地图开发文档 https://lbs.qq.com/webApi/javascriptGL/glGuide/glOverview
    在这里插入图片描述

  2. 添加 key
    在这里插入图片描述
    在这里插入图片描述

  3. 代码中引入

// 入口文件 index.html
// 填入你申请的key
<script charset="utf-8" src="https://map.qq.com/api/gljs?v=1.exp&key=这里是你申请的key"></script>
<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
  1. 初始化
    在这里插入图片描述
    // 这是切好的瓦片图 文件夹名字为 z 文件名字为 x_y

在这里插入图片描述
在这里插入图片描述

<template><div id="mapContainer"></div>
</template>data(){return {mapObj:null,mapMarker:null}
},
mounted(){this.$nextTick(()=>{initMap()})
},methods:{initMap() {var center = new TMap.LatLng(26.870355, 110.239704) //设置中心点坐标// 初始化地图this.mapObj = new TMap.Map("mapContainer", {center: center,zoom: 12, // 地图默认缩放级别showControl: true,  // 是否显示地图上的控件// viewMode: '2D',  // 地图视图模式,支持2D和3D,默认为3D。2D模式下俯仰角和旋转角度始终为0rotation: 0, //设置地图旋转角度});// 初始化瓦片// 瓦片图需要切好每个位置的图// x,y,z 为上图的坐标new TMap.ImageTileLayer({getTileUrl: function (x, y, z) {console.log(x,y,z)//拼接瓦片URLlet url =`https://xxxxxxxxx.com/${cutUrl}/` +z +"/" +x +"_" +y +".png";return url;},tileSize: 256, //瓦片像素尺寸minZoom: Number(baseData.mapMinRatio), //显示自定义瓦片的最小级别maxZoom: Number(baseData.mapMaxRatio), //显示自定义瓦片的最大级别visible: true, //是否可见zIndex: 5000, //层级高度(z轴)opacity: 1, //图层透明度:1不透明,0为全透明map: this.mapObj, //设置图层显示到哪个地图实例中});//当图中打点非常密集,地图的可读性变差时,推荐使用点聚合功能,它会根据您的设置,自动将距离相近的标记聚合到一起,以统计数字方式呈现在图中相应位置,从而实现清晰、易读的场景需求。this.markerCluster = new TMap.MarkerCluster({id: "cluster",map: this.mapObj,enableDefaultStyle: false, // 关闭默认样式minimumClusterSize: 2,geometries: [// 这个数据可以写死  也可以调用方法 动态添加{position: new TMap.LatLng(39.982829,116.306934)},{position: new TMap.LatLng(39.989011,116.323586)},{position: new TMap.LatLng(39.978751,116.313286)},{position: new TMap.LatLng(39.980593,116.304359)},],zoomOnClick: true,gridSize: 60,averageCenter: true,});// 或者使用该方法  添加数据// this.markerCluster.setGeometries([]);// 折现初始化// 此处变量为动态配置的颜色  你也可以写死let lineColor = this.baseData.lineColor;let lineThickness = this.baseData.lineThickness;let lineOuterColor = this.baseData.lineOuterColor;let lineOuterThickness = this.baseData.lineOuterThickness;this.polyline = new TMap.MultiPolyline({id: "polyline-layer",map: this.mapObj,styles: {polyline: new TMap.PolylineStyle({color: lineColor, //线填充色width: lineThickness, //折线宽度borderWidth: lineOuterThickness, //边线宽度borderColor: lineOuterColor, //边线颜色lineCap: "round", //线端头方式showArrow: true,ArrowOptions: {space: 5,},}),},geometries: [// 这个数据可以写死  也可以调用方法 动态添加// 此处为点数据 同上面一样],});// 或者使用该方法  添加数据// this.polyline.setGeometries([]);// 标记点文本this.labelMarker = new TMap.MultiLabel({id: "label-layer",map: this.mapObj,zIndex: 7000,styles: {label: new TMap.LabelStyle({alignment: "center", //文字水平对齐属性verticalAlignment: "middle", //文字垂直对齐属性color: "#fff",size: 18,offset: { x: 0, y: 20 },backgroundColor: "rgba(86, 76, 84, 0.80)",// strokeWidth: 2,borderRadius: 25,padding: "4px 20px",}),labelN: new TMap.LabelStyle({alignment: "center", //文字水平对齐属性verticalAlignment: "middle", //文字垂直对齐属性color: "#fff",size: 12,offset: { x: 0, y: 15 },backgroundColor: "rgba(86, 76, 84, 0.80)",// strokeWidth: 2,// width :140,// height: 20,padding: "2px 12px",borderRadius: 25,}),labelEn: new TMap.LabelStyle({alignment: "center", //文字水平对齐属性verticalAlignment: "middle", //文字垂直对齐属性color: "#333",size: 12,offset: { x: 0, y: 15 },backgroundColor: "rgba(254,250,245,0.85)",// strokeWidth: 2,width: 180,height: 20,borderRadius: 25,}),},enableCollision: false,geometries: [// 这个数据可以写死  也可以调用方法 动态添加// 此处为点数据 同上面一样],});// 标记点 标记点点击事件this.mapMarker = new TMap.MultiMarker({map: this.mapObj, // 显示Marker图层的底图zIndex: 6000,styles: {small_1: new TMap.MarkerStyle({// 点标注的相关样式width: 32, // 宽度height: 36, // 高度anchor: { x: 16, y: 36 }, // 标注点图片的锚点位置src: "./images/smartMap/spot.png", // 标注点图片url或base64地址}),big_1: new TMap.MarkerStyle({width: 40,height: 48,anchor: { x: 20, y: 48 },src: "./images/smartMap/spot.png",}),user: new TMap.MarkerStyle({width: 36,height: 44,anchor: { x: 18, y: 44 },src: "https://eshopfile.xxxxx.com/2023031609350436976.png",}),},enableCollision: false, // 开启碰撞geometries: [// 这个数据可以写死  也可以调用方法 动态添加// 此处为点数据 同上面一样],});// 标记点点击事件this.mapMarker.on("click", this.markerClick);// 点击事件this.mapObj.on("click", this.mapClick);},mapClick(val) {// 点击事件返回经纬度 等各种信息console.log(val)},markerClick(res){console.log(res)}}
  1. 效果图
    在这里插入图片描述

  2. 项目中的图片 请更换为您自己的图片。

  3. 该博客 包含 地图的初始化 折线 瓦片图 标记点 标记点文本 等实现信息。 希望可以帮助您!

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

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

相关文章

【通信原理】其实QPSK就是一种特殊的QAM,即4-QAM

文章目录 幅度调制和相位调制QPSK(Quadrature Phase Shift Keying)QAM(Quadrature Amplitude Modulation)QPSK作为4-QAMQPSK(Quadrature Phase Shift Keying)和QAM(Quadrature Amplitude Modulation)都是数字调制技术,用于在无线信号中传输数据。要理解“QPSK其实就是…

新旧电脑数据转移方法

随着科技的发展和电脑性能的不断提升&#xff0c;许多用户在工作和生活中都需要更换新电脑。当我们购买了一台新电脑后&#xff0c;如何将旧电脑中的数据转移到新电脑上成许多用户关注的问题。本文将详细介绍几种有效的电脑数据转移方法&#xff0c;帮助大家顺利完成数据迁移。…

国产麒麟、uos在线编辑word文件并控制编辑区域(局部编辑)

windows系统也适用&#xff0c;该插件可同时支持windows和国产系统 在实际项目开发中&#xff0c;以下场景可能会用到Word局部编辑功能&#xff1a; 合同审批公文流转策划设计报告汇签单招投标&#xff08;标书文件&#xff09;其他&#xff0c;有模板且需要不同人员协作编辑…

06.TMS570LC43入门指南——中断操作

06.TMS570LC43入门指南——中断操作 文章目录 06.TMS570LC43入门指南——中断操作一、简介二、中断&#xff08;VIM&#xff09;介绍2.1 VIM架构2.2 CPU 中断处理2.3 VIM中断通道映射2.4 中断请求默认分配 三、项目实现3.1 硬件部分3.2 软件部分3.2.1 HALCoGen 配置3.2.2 CCS 配…

RK3588部署YOLOV8-seg的问题

在使用YOLOV8-seg训练出来的pt模型转为onnx的时候&#xff0c;利用以下仓库地址转。 git clone https://github.com/airockchip/ultralytics_yolov8.git 在修改ultralytics/cfg/default.yaml中的task&#xff0c;mode为model为自己需要的内容后&#xff0c; 执行以下语句 cd …

在Linux上搭建服务器之综合实验(web,dns,防火墙,SELinux)

其实验简图如下&#xff1a; 解读&#xff1a; 本实验需要完成4部分内容&#xff0c;web服务器的搭建&#xff0c;主从dns服务器的搭建&#xff0c;防火墙的开启&#xff0c;以及SELinux设置为强制模式。 首先dns主服务器上配置web服务&#xff08;其中我本机的IP为192.168.5.…

thinkphp 生成邀请推广二维码,保存到服务器并接口返回给前端

根据每个人生成自己的二维码图片,接口返回二维码图片地址 生成在服务器的二维码图片 控制器 public function createUserQRcode(){$uid = input(uid);if

深度学习编码解码结构-以及kreas简单实现

图像分割中的编码解码结构&#xff08;Encoder-Decoder Model&#xff09;是一种广泛应用的网络架构&#xff0c;它有效地结合了特征提取&#xff08;编码&#xff09;和分割结果生成&#xff08;解码&#xff09;两个过程。以下是对图像分割中编码解码结构的详细解析&#xff…

通过vagrant与VirtualBox 创建虚拟机

1.下载vagrant与VirtualBox【windows版本案例】 1.1 vagrant 下载地址 【按需下载】 https://developer.hashicorp.com/vagrant/install?product_intentvagranthttps://developer.hashicorp.com/vagrant/install?product_intentvagrant 1.2 VirtualBox 下载地址 【按需下载…

lvs集群、NAT模式和DR模式、keepalive

目录 lvs集群概念 集群的类型&#xff1a;三种类型 系统可靠性指标 lvs集群中的术语 lvs的工作方式 NAT模式 lvs的工具 算法 实验 数据流向 步骤 一 、调度器配置&#xff08;test1 192.168.233.10&#xff09; 二、RS配置&#xff08;nginx1和nginx2&#xff09;…

物理层与数据通信基础:构建稳定网络的关键

本章主要讨论物理层的基本概念、数据通信的基础知识、几种常用的信道复用技术以及互联网接入技术。对于具备通信基础知识的读者&#xff0c;可以有选择地学习本章内容。 本章重点内容 物理层的任务数据通信的基本概念常用的信道复用技术常用的互联网接入技术 2.1 物理层的基…

深入理解FFmpeg--libavformat接口使用(一)

libavformat&#xff08;lavf&#xff09;是一个用于处理各种媒体容器格式的库。它的主要两个目的是去复用&#xff08;即将媒体文件拆分为组件流&#xff09;和复用的反向过程&#xff08;以指定的容器格式写入提供的数据&#xff09;。它还有一个I/O模块&#xff0c;支持多种…

5G与未来通信技术

随着科技的迅猛发展&#xff0c;通信技术也在不断演进。5G技术作为第五代移动通信技术&#xff0c;已成为现代通信技术的一个重要里程碑。本文将详细介绍5G及其对未来通信技术的影响&#xff0c;重点探讨超高速互联网和边缘网络的应用。 一、超高速互联网 1. 低延迟 5G技术最显…

Seven layers of the metaverse

看到一篇关于元宇宙的文章&#xff0c;分享给大家&#xff0c;供大家参考。 随着物理世界和数字世界的融合&#xff0c;元宇宙正在推动我们数字能力的新边界。从人类身份、个性和声誉到资产、情感和历史&#xff0c;元宇宙的虚拟现实中可以以全新的方式进行交互、控制和体验。因…

NFS服务器、autofs自动挂载综合实验

综合实验 现有主机 node01 和 node02&#xff0c;完成如下需求&#xff1a; 1、在 node01 主机上提供 DNS 和 WEB 服务 2、dns 服务提供本实验所有主机名解析 3、web服务提供 www.rhce.com 虚拟主机 4、该虚拟主机的documentroot目录在 /nfs/rhce 目录 5、该目录由 node02 主机…

【pbootcms】新环境搭建环境安装时发生错误

【pbootcms】新环境搭建环境安装时发生错误 提示一下内容&#xff1a; 登录请求发生错误&#xff0c;您可按照如下方式排查: 1、试着删除根目录下runtime目录,刷新页面重试 2、检查系统会话文件存储目录是否具有写入权限; 3、检查服务器环境pathinfo及伪静态规则配置; 先按照…

LabVIEW阀门运动PCT测试

开发了一套基于LabVIEW的阀门运动PCT&#xff08;Pressure-Composition-Temperature&#xff09;测试方法。该系统通过控制阀门运动&#xff0c;实现对氢气吸附和解吸过程的精确测量和控制。所用硬件包括NI cDAQ-9174数据采集模块、Omega PX309压力传感器、SMC ITV2030电动调节…

文学式开发工具 Jupyter Notebook

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。为什么说Jupyter Notebook是文学式开发工具&#xff1f;因为Jupyter Notebook将代码、说明文本、数学方程式、数据可视化图表内容全部组合到一起并显示在一个共享的文档中&#xff0c;可以实现一边写代码一边记录的效果&am…

一文搞定node.js和Vue脚手架的介绍以及安装

node.js的介绍以及安装 node.js的介绍 node.js提供了前端程序的运行环境&#xff0c;可以把node.js理解成是运行前端程序的服务器。node.js的安装 从官网下载安装即可&#xff1a;http://nodejs.cn/download/不要勾选这个,否则会下载很多东西 node -v 是 查看node的版本 npm…

按下快门前的算法——对焦

对焦算法可以分为测距式&#xff0c;相位式&#xff0c;反差式。 其中测距式是通过激光&#xff0c;&#xff08;TOF&#xff0c;Time of Flight&#xff09;等主动式地得知物距&#xff0c;然后对焦。更常用的是后两者。 反差式CDAF&#xff08;Contrast Detection Auto Foc…