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. 该博客 包含 地图的初始化 折线 瓦片图 标记点 标记点文本 等实现信息。 希望可以帮助您!

相关内容

热门资讯

黑科技辅助!wpk有猫腻吗(w... 黑科技辅助!wpk有猫腻吗(we-poker)外挂透视辅助app(热点推荐黑科技攻略);支持多人共享...
透视免费!蛮王大厅辅助,aap... 透视免费!蛮王大厅辅助,aapoker俱乐部靠谱吗,2025新版教程(先前真的是有挂)是由北京得aa...
黑科技挂!cloud辅助(we... 黑科技挂!cloud辅助(wePoKe)透明黑科技辅助脚本(科普攻略黑科技技巧)是一款可以让一直输的...
透视软件!西兵互娱辅助插件ap... 透视软件!西兵互娱辅助插件app,wpk脚本下载,可靠教程(原先真的是有挂);原来确实真的有挂(需添...
黑科技透明挂挂!德州ai辅助软... 1、黑科技透明挂挂!德州ai辅助软件推荐(wePoKe)外挂透明挂辅助软件(我来向大家传授黑科技攻略...
透视免费!卡农血拼辅助,wep... 1、透视免费!卡农血拼辅助,wepoker透视脚本安卓,可靠教程(固有存在有挂)。2、wepoker...
黑科技苹果版!德扑线上创建房间... 黑科技苹果版!德扑线上创建房间(wePokE)透明黑科技辅助神器(终于清楚黑科技神器);玩家必备必赢...
透视安卓版!樱花之盛挂,wep... 透视安卓版!樱花之盛挂,wepoker辅助器怎么用,微扑克教程(好像存在有挂);支持多人共享记分板与...
黑科技规律!wepoke辅助软... 黑科技规律!wepoke辅助软件靠谱吗(We辅poker助)黑科技辅助软件(科技揭秘黑科技辅助)是一...
透视透视!新超凡软件辅助,aa... 1、透视透视!新超凡软件辅助,aapoker辅助插件工具,玩家教你(都是真的是有挂)2、进入游戏-大...