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 配…

arm 版的 deb、rpm、AppImage 都有什么区别

qq arm 版的 deb、rpm 和 AppImage 格式之间存在几个关键区别。以下是对这些区别的详细解释&#xff1a; 包管理系统与兼容性&#xff1a; deb&#xff1a;是Debian及其衍生发行版&#xff08;如Ubuntu&#xff09;中使用的软件包格式。这些系统使用dpkg命令来管理deb包&#…

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 …

最新等保测评要求与企业应对策略

等保&#xff08;等级保护&#xff09;是中国网络安全的基本制度之一&#xff0c;旨在根据信息系统的安全级别&#xff0c;实施相应的保护措施。等保2.0在2019年底正式实施&#xff0c;它对信息系统进行了更细致的分类&#xff0c;并提出了更全面的安全要求。最新的等保测评要求…

vue3 学习笔记03 -- scss的使用

vue3 学习笔记03 – scss的使用 项目中结合 SCSS 可以很方便地管理样式 安装依赖 npm install -D sass sass-loader配置scss支持 export default defineConfig({plugins: [vue()],css: {preprocessorOptions: {//define global scss variablescss: {javascriptEnabled: true,…

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

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

Memcached故障恢复秘籍:构建弹性缓存系统

标题&#xff1a;Memcached故障恢复秘籍&#xff1a;构建弹性缓存系统 在分布式缓存系统中&#xff0c;Memcached的稳定性和可靠性至关重要。故障恢复机制确保了在面对节点故障或网络问题时&#xff0c;Memcached能够快速恢复正常运行。本文将深入探讨Memcached的故障恢复机制…

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;…

设计模式使用场景实现示例及优缺点(结构型模式——桥接模式)

结构型模式 桥接模式&#xff08;Bridge Pattern&#xff09; 桥接模式&#xff08;Bridge Pattern&#xff09; 也称为桥梁模式、接口模式或者柄体模式&#xff0c;是将抽象部分与它的具体实现部分分离&#xff0c;使它们都可以独立地变化&#xff0c;属于结构型模式。桥接模…

项目开源能够带来什么?从中得到了什么?

开源软件项目的发展趋势和参与经验是一个多维度的话题&#xff0c;涉及技术进步、经济影响、社区动态以及个人成长等多个层面。以下是针对当前开源项目发展趋势的分析&#xff0c;以及参与开源项目时可能获得的经验和收获。 当前开源项目的发展趋势 技术领域的渗透加深&#x…

android项目实战之加载h5音乐页面,退出后销毁资源

在Android开发中&#xff0c;使用Fragment加载HTML5页面&#xff08;通常是通过WebView&#xff09;来播放音乐。 1. 加载资源 webView.setWebViewClient(new WebViewClient());webView.setWebChromeClient(new WebChromeClient());String url"";//改成你的页面链接…

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

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

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

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

5G与未来通信技术

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