vue 使用腾讯地图 标点 自定义瓦片 折线配置
创始人
2025-01-11 02:03:56
0

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   
  1. 初始化
    在这里插入图片描述
    // 这是切好的瓦片图 文件夹名字为 z 文件名字为 x_y

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

  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模式下俯仰角和旋转角度始终为0         rotation: 0, //设置地图旋转角度       });       // 初始化瓦片        // 瓦片图需要切好每个位置的图       // x,y,z 为上图的坐标              new TMap.ImageTileLayer({         getTileUrl: function (x, y, z) {           console.log(x,y,z)           //拼接瓦片URL           let 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. 该博客 包含 地图的初始化 折线 瓦片图 标记点 标记点文本 等实现信息。 希望可以帮助您!

相关内容

热门资讯

第九分钟辅助!天天爱柳州辅助器... 天天爱柳州辅助器是一款可以让一直输的玩家,快速成为一个“必胜”的ai辅助神器,有需要的用户可以加我微...
热门推荐!微信小程序蜀山辅助器... 热门推荐!微信小程序蜀山辅助器免费下载(辅助)外挂辅助开挂插件(有挂秘诀)-哔哩哔哩;最新版2026...
第4分钟普及!奇迹陕西辅助器(... 第4分钟普及!奇迹陕西辅助器(透视)原来真的是有挂脚本(推荐开挂软件);奇迹陕西辅助器免费下载原版,...
第八分钟讲解!越乡游金花辅助,... 第八分钟讲解!越乡游金花辅助,九酷众游辅助,细节方法(有挂实锤)-哔哩哔哩1、下载安装好越乡游金花辅...
透视软件!浙江宝宝游戏辅助工具... 透视软件!浙江宝宝游戏辅助工具(辅助)外挂开挂辅助插件(了解有挂)-哔哩哔哩;是一款可以让一直输的玩...
第5分钟发现!桃乐甘肃麻将下载... 《第5分钟发现!桃乐甘肃麻将下载辅助器(辅助)原来有挂软件(必看开挂工具)》 桃乐甘肃麻将下载辅助器...
第8分钟了解!河洛刚次辅助,温... 第8分钟了解!河洛刚次辅助,温州茶苑辅助软件,详细教程(有挂攻略)-哔哩哔哩;无需打开直接搜索加薇1...
热点讨论!新二号辅助软件下载(... 热点讨论!新二号辅助软件下载(辅助)外挂辅助开挂软件(有挂教程)-哔哩哔哩;是一款可以让一直输的玩家...
8分钟解说!网易亲友圈辅助(开... 8分钟解说!网易亲友圈辅助(开挂)原来有挂平台(必看开挂安装);小薇(透视辅助)致您一封信;亲爱网易...
第5分钟开挂!如何在哈灵上辅助... 第5分钟开挂!如何在哈灵上辅助,决战卡五星辅助看牌器,解说技巧(有挂方略)-哔哩哔哩 了解更多开挂安...