vue+天地图聚合+多个点的信息窗口

1.天地图申请秘钥

https://uums.tianditu.gov.cn/register

2.在index.html引入

<script type="text/javascript" src="http://api.tianditu.gov.cn/api?v=4.0&tk=您的密钥"></script>

3.利用官网给的代码进行输出

<template>
  <div id="mapDiv"></div>
</template>

<script>
export default {
	data(){
		return{
			zoom:3,
			myData1: [
				{ mapName: "海门", mapValue: [121.15, 31.89, 100,"地址:海门"] },
				{ mapName: "鄂尔多斯", mapValue: [109.781327, 39.608266, 130,"地址:鄂尔多斯"] },
				{ mapName: "招远", mapValue: [120.38, 37.35, 200,"地址:招远"] },
				{ mapName: "舟山", mapValue: [122.207216, 29.985295,  50,"地址:舟山"] },
				{ mapName: '湘潭', mapValue: [112.91,27.87,  50,"地址:湘潭"]},
				{ mapName: '金华', mapValue: [119.64,29.12,  50,"地址:金华"]},
				{ mapName: '岳阳', mapValue: [113.09,29.37,  50,"地址:岳阳"]},
				{ mapName: '长沙', mapValue: [122.207216, 29.985295,  50,"地址:长沙"]},
				{ mapName: '衢州', mapValue: [118.88,28.97,  50,"地址:衢州"]},
				{ mapName: '廊坊', mapValue: [116.7,39.53,  50,"地址:廊坊"]},
				{ mapName: '菏泽', mapValue: [115.480656,35.23375,  50,"地址:菏泽"]},
				{ mapName: '合肥', mapValue: [117.27,31.86,  50,"地址:合肥"]},
				{ mapName: '武汉', mapValue: [114.31,30.52,  50,"地址:武汉"]},
				{ mapName: '大庆', mapValue: [125.03,46.58,  50,"地址:大庆"]}
			],
		}
	},
	mounted(){
		this.onload()
	},
	methods:{
		onload() {
			var map = new T.Map('mapDiv', {
                attributionControl: false,
                inertia: false
            });
			map.centerAndZoom(new T.LngLat(104.114129, 37.550339), this.zoom);
			var arrayObj = new Array();
			//显示在地图上的具体点的坐标
            for (var i = 0; i < this.myData1.length; i++) {
               //官方大大的代码是随机500个坐标点
				var marker = new T.Marker(new T.LngLat(this.myData1[i].mapValue[0], this.myData1[i].mapValue[1]));
				var content = this.myData1[i].mapValue[3];
				// map.addOverLay(marker);// 将标注添加到地图中,加入这一句会使其标注,聚合点会有点点问题
				addClickHandler(content,marker);
				arrayObj.push(marker);//变成聚合点
			}
			//点击坐标点打开一个窗口
			function addClickHandler(content,marker){
                marker.addEventListener("click",function(e){
                    openInfo(content,e)}
                );
			}
			//开启信息窗口
            function openInfo(content,e){
                var point = e.lnglat;
                marker = new T.Marker(point);// 创建标注
                var markerInfoWin = new T.InfoWindow(content,{offset:new T.Point(0,-30)}); // 创建信息窗口对象
                map.openInfoWindow(markerInfoWin,point); //开启信息窗口
			}
			
			var markers = new T.MarkerClusterer(map, {markers: arrayObj});
		}
	}
}
</script>

<style>
	body,html{
		width:100%;height:100%;margin:0;font-family:"Microsoft YaHei"
	}
	//这个必须要有,不然天地图出不来。
	#mapDiv{
		width:100%;height:400px
	}
	input,b,p{
		margin-left:5px;font-size:14px
	}

</style>

4.代码已经上了,有什么不会欢迎评论。小菜鸡的分享,大佬轻喷。欢迎指教。
在这里插入图片描述

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和组件,帮助开发人员快速实现各种地图需求,提高开发效率和用户体验。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值