LeafLet图层控制

<!DOCTYPE html>
<html>

	<head>
		<meta charset="UTF-8">
		<title>图层控制</title>
		<link rel="stylesheet" type="text/css" href="../leaflet/iclient9-leaflet.css" />
		<script type="text/javascript" src="../leaflet/include-leaflet.js"></script>
		<script src='../js/jquery.js'></script>
		<style>
			html,
			body {
				height: 100%;
				margin: 0;
			}			
			#map {
				width: 100%;
				height: 100%;
			}
		</style>
	</head>

	<body>
		<div id='map'></div>
		<script>
			var cities = L.layerGroup();
			L.marker([39.61, -105.02]).bindPopup('This is Littleton, CO.').addTo(cities),
				L.marker([39.74, -104.99]).bindPopup('This is Denver, CO.').addTo(cities),
				L.marker([39.73, -104.8]).bindPopup('This is Aurora, CO.').addTo(cities),
				L.marker([39.77, -105.23]).bindPopup('This is Golden, CO.').addTo(cities);
			var	mbUrl = 'https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw';
			var grayscale = L.tileLayer(mbUrl, {
				id: 'mapbox/light-v9',
				tileSize: 512,
				zoomOffset: -1,					
			});
			var	streets = L.tileLayer(mbUrl, {
				id: 'mapbox/streets-v11',
				tileSize: 512,
				zoomOffset: -1,
			});

			var map = L.map('map', {
				center: [39.73, -104.99],
				zoom: 10,
				layers: [grayscale, cities]
			});

			var baseLayers = {//默认加载数组的第一个tileLayer
				"<span style='color: red'>白天</span>": grayscale,//可添加样式
				"黑夜": streets
			};

			var overlays = {
				"Cities": cities
			};
			//第二个参数可省略。第一个参数可以为null,用于只控制overlays 
			L.control.layers(baseLayers,overlays).addTo(map);
		</script>

	</body>

</html>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
leaflet是一个轻量级的开源JavaScript库,用于创建交互式地图和WebGIS应用程序。它提供了多种功能,包括地图展示、缩放、拖拽、标记、弹出框、图例等。另外,leaflete还支持图层叠加,即在地图上添加多个覆盖层,使得用户可以通过切换图层,查看不同的地理信息。 实现图层叠加,需要先创建一个地图对象,然后在该对象上添加多个图层。例如,我们可以先创建一个OpenStreetMap图层: ```javascript var streetMap = L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', { attribution: 'Map data © OpenStreetMap contributors' }); ``` 接着,我们可以添加一个WMS图层,用于显示卫星影像: ```javascript var satelliteMap = L.tileLayer.wms('http://localhost/wms', { layers: 'satellite', format: 'image/png', transparent: true }); ``` 最后,我们可以将这两个图层添加到地图对象,如下所示: ```javascript var map = L.map('map').setView([51.505, -0.09], 13); var baseMaps = { 'Street Map': streetMap, 'Satellite Map': satelliteMap }; L.control.layers(baseMaps).addTo(map); streetMap.addTo(map); ``` 通过以上的代码,我们在地图上添加了两个覆盖层,用户可以通过控制面板来切换不同的图层。在WMS图层中,可以使用layers参数指定要显示的图层名称,format参数指定输出格式,transparent参数指示是否使用透明背景。 除了WMS图层,我们还可以添加GeoJSON图层、TileLayer图层等。总之,leaflet提供了丰富的图层叠加功能,可以满足多种地图展示需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值