html使用天地图写一个地图列表

一、效果图:

点击左侧地址列表,右侧地图跟着改变。

二、代码实现:

一进入页面时,通过body调用onLoad="onLoad()"函数,确保地图正常显示。

html 复制代码
<body onLoad="onLoad()">
					<!--左侧代码-->
					<div class="addressList">
							<div class="address_item"
								onclick="setCenterAndZoom(36.66416, 117.03215,'济南市历下区泉城路世茂广场东座商场三楼E370<br />Red Copper专柜 ')">
								<div class="name">济南世茂店</div>
								<div class="infobox">
									<img src="static/imgs/region@2x_1.png" />
									<div class="infos">济南市历下区泉城路世茂广场东座商场三楼E370<br />Red Copper专柜 </div>
								</div>
							</div>
							<div class="address_item"
								onclick="setCenterAndZoom(36.66637,117.1969,'济南市历城区经十路与凤鸣路交汇口(融创茂东门)L1层1032<br />Red Copper专柜')">
								<div class="name">济南融创店</div>
								<div class="infobox">
									<img src="static/imgs/region@2x_1.png" />
									<div class="infos">济南市历城区经十路与凤鸣路交汇口(融创茂东门)L1层1032<br />Red Copper专柜</div>
								</div>
							</div>
							<div class="address_item"
								onclick="setCenterAndZoom(39.9042, 116.4074,'济南市槐荫区经七纬十二路和谐银座七楼<br />Red Copper专柜 ')">
								<div class="name">济南和谐店</div>
								<div class="infobox">
									<img src="static/imgs/region@2x_1.png" />
									<div class="infos">济南市槐荫区经七纬十二路和谐银座七楼<br />Red Copper专柜 </div>
								</div>
							</div>
							......
						</div>
						
						<!--右侧代码-->
						<div class="imgbox" id="map"></div>
					
						<script type="text/javascript"
							src="http://api.tianditu.gov.cn/api?v=4.0&tk=此处填写自己申请的key值"></script>
						<script>
							var map;
							var zoom = 18;
							var marker;
	
							function onLoad() {
								//初始化地图对象
								map = new T.Map("map");
								//设置显示地图的中心点和级别
								map.centerAndZoom(new T.LngLat(117.02548, 36.66401), zoom);
	
								var lnglat = new T.LngLat(117.02548, 36.66401);
								//创建信息窗口对象
								var infoWin = new T.InfoWindow();
								infoWin.setLngLat(lnglat);
								//设置信息窗口要显示的内容
								infoWin.setContent("济南市历下区泉城路世茂广场东座商场三楼E370 Red Copper专柜");
								//向地图上添加信息窗口
								map.addOverLay(infoWin);
							}
	
							function setCenterAndZoom(lat, lng, name) {
								// var lng = document.getElementById("lng").value;
								// var lat = document.getElementById("lat").value;
								// var zoom = document.getElementById("zoom").value;
								map.centerAndZoom(new T.LngLat(lng, lat), zoom);
	
								let newMarker = map.getOverlays(); // 获取到了地图上的所有点
								// console.log(newMarker, 'newMarker');
								for (let i = 0; i < newMarker.length; i++) {
									map.removeOverLay(newMarker[i])
								};
	
								var lnglat = new T.LngLat(lng, lat);
								//创建信息窗口对象
								var infoWin = new T.InfoWindow();
								infoWin.setLngLat(lnglat);
								//设置信息窗口要显示的内容
								infoWin.setContent(name);
								//向地图上添加信息窗口
								map.addOverLay(infoWin);
							}
						</script>
</body>

ok~

相关推荐
whysqwhw2 小时前
js之Promise
前端
恋猫de小郭5 小时前
Flutter 3.35 发布,快来看看有什么更新吧
android·前端·flutter
chinahcp20086 小时前
CSS保持元素宽高比,固定元素宽高比
前端·css·html·css3·html5
gnip7 小时前
浏览器跨标签页通信方案详解
前端·javascript
gnip8 小时前
运行时模块批量导入
前端·javascript
hyy27952276848 小时前
企业级WEB应用服务器TOMCAT
java·前端·tomcat
逆风优雅8 小时前
vue实现模拟 ai 对话功能
前端·javascript·html
若梦plus9 小时前
http基于websocket协议通信分析
前端·网络协议
不羁。。9 小时前
【web站点安全开发】任务3:网页开发的骨架HTML与美容术CSS
前端·css·html
这是个栗子9 小时前
【问题解决】Vue调试工具Vue Devtools插件安装后不显示
前端·javascript·vue.js