Leaflet工作笔记-多个标签在地图显示不关闭

就是这个例子:

网页一进去就是被打开的。并且多个标签同时显示。

要实现这种效果,需要如下设置:

1.设置bindPopup时把autoClose设置为false,这样点开一个就不会关闭另外一个了。

2.在所有脚本设置好了,通过fire函数传入'click',再指定坐标,可以在页面加载后,就显示了。

源码如下:

<!DOCTYPE html>
<html>
<head>
	
	<title>Quick Start - Leaflet</title>

	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	
	<link rel="shortcut icon" type="image/x-icon" href="docs/images/favicon.ico" />

    <link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
    <script src="https://unpkg.com/[email protected]/dist/leaflet.js" integrity="sha512-gZwIG9x3wUXg2hdXF6+rVkLF/0Vi9U8D2Ntg4Ga5I5BZpVkVxlJWbSQtXPSiUTtC0TjtGOmxa1AJPuV0CPthew==" crossorigin=""></script>
	<script src="https://cdn.bootcss.com/echarts/4.4.0-rc.1/echarts.min.js"></script>
	<script src="https://www.echartsjs.com/examples/vendors/echarts-gl/echarts-gl.js"></script>

	
</head>
<body>



<div id="mapid" style="width: 600px; height: 400px;"></div>
<script>

	var mymap = L.map('mapid').setView([51.505, -0.09], 13);

	L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
		maxZoom: 18,
		attribution: 'Map data &copy; <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
			'<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
			'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
		id: 'mapbox/streets-v11'
	}).addTo(mymap);

	//L.marker([51.5, -0.09]).addTo(mymap).bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();
	let popupContent = '<div style="width:200px;height:200px" id="popupTest"</div>';
	let testLay = L.circleMarker([51.5,-0.09],{
		radius: 8,
		fillColor: "#ff7800",
		color: "#000",
		weight: 1,
		opacity: 1,
		fillOpacity: 0.8
	}).addTo(mymap);

	testLay.bindPopup(popupContent, {autoClose: false});

	let popupContent2 = '<div style="width:200px;height:200px" id="popupTest2"</div>';
	let testLay2 = L.circleMarker([51.5,-0.08],{
		radius: 8,
		fillColor: "#ff7800",
		color: "#000",
		weight: 1,
		opacity: 1,
		fillOpacity: 0.8,
	}).addTo(mymap);

	testLay2.bindPopup(popupContent2, {autoClose: false});

	testLay.on('popupopen', function (e) {

		var myChart = echarts.init(document.getElementById('popupTest'));

		let hours = [ '1a', '2a', '3a', '4a', '5a'];
		let days = ['Saturday'];


		let option = {
			xAxis3D: {
				type: 'category',
				data: hours
			},
			yAxis3D: {
				type: 'category',
				data: days
			},
			zAxis3D: {
				type: 'value'
			},
			grid3D: {
				viewControl: {
					// autoRotate: true
				},
				light: {
					main: {
						shadow: true,
						quality: 'ultra',
						intensity: 1.5
					}
				}
			},
			tooltip: {},
			legend: {
				data: ['一档', '二档','三档','四档','五档']
			},
			series: [
				{
					type: 'bar3D',
					name: "一档",
					data: [[0, 2, 20], [1, 2, 2], [2, 2, 2], [3, 2, 2], [4, 2, 2]],
					stack: 'stack',
					shading: 'lambert',
					emphasis: {
						label: {
							show: true
						}
					}
				},
				{
					type: 'bar3D',
					name: "二档",
					data: [[0, 2, 2], [1, 2, 20], [2, 2, 2], [3, 2, 2], [4, 2, 2]],
					stack: 'stack',
					shading: 'lambert',
					emphasis: {
						label: {
							show: false
						}
					}
				}
			]
		}
		myChart.setOption(option);
	});
	testLay2.on('popupopen', function (e) {

		var myChart = echarts.init(document.getElementById('popupTest2'));

		let hours = [ '1a', '2a', '3a', '4a', '5a'];
		let days = ['Saturday'];


		let option = {
			xAxis3D: {
				type: 'category',
				data: hours
			},
			yAxis3D: {
				type: 'category',
				data: days
			},
			zAxis3D: {
				type: 'value'
			},
			grid3D: {
				viewControl: {
					// autoRotate: true
				},
				light: {
					main: {
						shadow: true,
						quality: 'ultra',
						intensity: 1.5
					}
				}
			},
			tooltip: {},
			legend: {
				data: ['一档', '二档','三档','四档','五档']
			},
			series: [
				{
					type: 'bar3D',
					name: "一档",
					data: [[0, 2, 20], [1, 2, 2], [2, 2, 2], [3, 2, 2], [4, 2, 2]],
					stack: 'stack',
					shading: 'lambert',
					emphasis: {
						label: {
							show: true
						}
					}
				},
				{
					type: 'bar3D',
					name: "二档",
					data: [[0, 2, 2], [1, 2, 20], [2, 2, 2], [3, 2, 2], [4, 2, 2]],
					stack: 'stack',
					shading: 'lambert',
					emphasis: {
						label: {
							show: false
						}
					}
				}
			]
		}
		myChart.setOption(option);
	});

	testLay.fire('click', {

		latlng: [51.5,-0.09]
	});
	testLay2.fire('click', {

		latlng: [51.5,-0.08]
	});


</script>



</body>
发布了1269 篇原创文章 · 获赞 1970 · 访问量 179万+

猜你喜欢

转载自blog.csdn.net/qq78442761/article/details/104239733