mapbox在标签下添加新图层

在这里插入图片描述
如果没有第二个参数那么新加的图层就会在那个图层的紧挨着的下面。

在这里插入图片描述
"fill"

具有可选描边边框的填充多边形。

"line"

描边线。

"symbol"

图标或文本标签。

"circle"

实心圆。

"heatmap"

热图。

"fill-extrusion"

拉伸(3D)多边形。

"raster"

栅格地图纹理,例如卫星图像。

"hillshade"

基于DEM数据的客户端山体阴影可视化。目前,该实现仅支持Mapbox Terrain RGB和Mapzen Terrarium磁贴。

"background"

地图的背景颜色或图案。

完整代码:

<!DOCTYPE html>
<html>
	<head>
		<meta charset='utf-8' />
		<title>在标签下添加新图层</title>
		<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
		<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v1.1.1/mapbox-gl.js'></script>
		<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v1.1.1/mapbox-gl.css' rel='stylesheet' />
		<style>
			body {
				margin: 0;
				padding: 0;
			}

			#map {
				position: absolute;
				top: 0;
				bottom: 0;
				width: 100%;
			}
		</style>
	</head>
	<body>

		<div id='map'></div>
		<script>
			mapboxgl.accessToken = 'pk.eyJ1Ijoic3E4ODg1NTUiLCJhIjoiY2toNDdudTN6MDByNjMzbW84cDA2MWJxMSJ9.ol91y8mStuwyy-URFaq5Uw';
			var map = new mapboxgl.Map({
				container: 'map',
				style: 'mapbox://styles/mapbox/streets-v11',
				center: [-88.13734351262877, 35.137451890638886],
				zoom: 4
			});

			map.on('load', function() {

				var layers = map.getStyle().layers; //找到所有的图层
				// 找到地图样式中第一个符号层的索引
				var firstSymbolId; //增加一个第一个图层id的变量,为了存储id
				for (var i = 0; i < layers.length; i++) { //遍历所有的图层找到为symbol(第一层)的id赋值给firstSymbolId
					if (layers[i].type === 'symbol') {
						firstSymbolId = layers[i].id;
						break;
					}
				}
				map.addLayer({ //增加图层
					'id': 'urban-areas-fill',
					'type': 'fill',
					'source': {
						'type': 'geojson',
						'data': 'https://d2ad6b4ur7yvpq.cloudfront.net/naturalearth-3.3.0/ne_50m_urban_areas.geojson'
					},
					'layout': {},
					'paint': {
						'fill-color': 'black',
						'fill-opacity': 0.4
					}
					//这是这个例子的重要部分:addLayer
					//方法有两个参数: 层作为一个对象, 和一个字符串
					//表示另一层的名称。
					//如果另一个图层
					//已经存在于样式表中,新层将被定位
					//就在堆栈的那一层的前面,使它能够放置
					//“覆盖”层堆栈的任何地方。
					//将该层插入到第一个符号层的下面。
				}, firstSymbolId); //firstSymbolId在找到的图层id前面添加图层
			});
		</script>


	</body>
</html>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值