vue2+天地图多点展示+自定义窗体

引入天地图

在vue的静态资源目录下的index.html中引入天地图的底图,开发天地图源码路径:天地图API

1.申请key(地址:点击跳转

2.加载天地图,引用:public/index.html

3.创建地图并展示

<div class="map-container" id="containerT" style="border-radius: 40px"></div>
//数据结构
dituDate:[
           {
                longitude: "103.196532",
                latitude: "29.770933",
                name: "下站1F-售货区",
            }
        ]  



// 创建地图
		createMap() {
			const T = window.T;
			// 3.初始化地图对象
			this.tMap = new T.Map('containerT', {});
			// 4.设置显示地图的中心点和级别
			this.tMap.centerAndZoom(new T.LngLat(116.39759, 39.908776), 13);
			// 5.创建地图类型控件
			const ctrl = new T.Control.MapType([
				{
					title: '地图',
					icon: 'http://api.tianditu.gov.cn/v4.0/image/map/maptype/vector.png', //地图控件上所要显示的图层图标(默认图标大小80x80)
					layer: window.TMAP_NORMAL_MAP,
				},
				// {
				// 	title: '卫星',
				// 	icon: 'http://api.tianditu.gov.cn/v4.0/image/map/maptype/satellite.png',
				// 	layer: window.TMAP_SATELLITE_MAP,
				// },
			]);
			// 6.将控件添加到地图,一个控件实例只能向地图中添加一次。
			// this.tMap.addControl(ctrl); //小窗口
			

			// 8.创建覆盖使用的图标
			const icon = new T.Icon({
				iconUrl: '../marker-red.png', //可自己修改成本地图片
				iconSize: new T.Point(27, 27),
				iconAnchor: new T.Point(10, 25),
			});
			this.dituDate.forEach((element) => {
				// 9. 创建在该坐标上的一个图像标注实例
				let point = new T.LngLat(element.longitude, element.latitude);
				let marker = new T.Marker(point, icon);
				// console.log(point, 'point');
				element.lnglat = point;
				// 10.将覆盖物添加到地图中,一个覆盖物实例只能向地图中添加一次
				this.tMap.addOverLay(marker);
			
			});

			this.tMap.checkResize();
		},

展示效果

4.向地图添加点位,并且自定义弹窗

新增这行代码

//自定义点位弹窗
		addClickHandler(content, marker) {
			var T = window.T;
			marker.addEventListener('click', function (e) {
				// console.log(e, 'e', content, marker);
				var markerInfoWin = new T.InfoWindow(); // 创建信息窗口对象
				// 弹窗模版 自己可修改css,我需求只展示名字
				const sContent = `<div class="module-title" style="color: black;font-size: 14px;">${content.name}</div>
        `;
				// 相对于点偏移的位置
				markerInfoWin.setContent(sContent, { offset: new T.Point(0, -30) });
				marker.openInfoWindow(markerInfoWin, e.lnglat); // 开启信息窗口
			});
		},

展示结果

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue Leaflet 是一种结合了Vue框架和Leaflet库的前端技术,用于展示和操作地图地图是一种具有高清影像和矢量数据的地图服务,提供了丰富的地理信息资源和功能,如地图展示地图操作、定位导航等。 Vue Leaflet 可以通过调用地图的API接口,获取并展示地图的各类地理信息。通过Vue的组件化开发方式,可以方便地在Vue项目中使用这些地理信息,实现自定义地图功能。例如,在Vue Leaflet 中可以实现地图、标记点、线段、面等地理要素的显示和编辑。 Vue Leaflet 提供了一套方便易用的API和组件,可以轻松地在Vue项目中集成和使用地图。比如,可以使用Vue Leaflet 提供的地图组件将地图展示在网页中,可以使用它提供的标记点组件在地图上添加标记,可以使用它提供的工具条组件进行地图的操作和导航等。 使用Vue Leaflet 可以有效地提高开发效率和用户体验。通过其简洁的API和灵活的组件,开发人员可以快速地实现各种地图需求,如显示地图、标记地点、展示线段等。并且,Vue Leaflet 结合了Vue框架的优势,可以更好地组织和管理地图相关的逻辑代码,使开发工作更加方便和高效。 总之,Vue Leaflet 是一种方便、灵活和高效的前端技术,用于展示和操作地图。它通过结合Vue框架和Leaflet库,提供了一套方便易用的API和组件,帮助开发人员快速实现各种地图需求,提高开发效率和用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值