mapbox gl添加symbol图层

本文通过实例代码展示了如何在Mapbox GL中添加Symbol图层,包括创建DOM和定义样式,最终呈现效果。

话不多说,直接上代码,就是个小例子:

<script>
			mapboxgl.accessToken = '';//mopbox 密钥

			
			var map = new mapboxgl.Map({
				container: 'map',
				// style: 'mapbox://styles/mapbox/streets-v11',
				 style: 'mapbox://styles/mapbox/streets-v11',
				center: [114.131818, 30.631181],
				zoom: 13, // starting zoom
			});

			// 设置语言
			// 英文标注转换为中文
			mapboxgl.setRTLTextPlugin('https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-rtl-text/v0.2.3/mapbox-gl-rtl-text.js');
			map.addControl(new MapboxLanguage({
			  defaultLanguage: 'zh-Hans'
			}));


			map.addControl(new mapboxgl.NavigationControl());
			map.on("zoomend", function() {
				console.log(map.getZoom());
			})
			//图片路径
			var icon1 = "img/icon1.png";
			var icon2 = "img/icon2.png";
			var icon3 = "img/icon3.png";
			//加载图片
			loadImg(icon1, "icon1");
			loadImg(icon2, "icon2");
			loadImg(icon3, "icon3");

			function loadImg(iconUrl, iconId) {
				var url = iconUrl;
				//先判断是否加载过这张图片
	
### 在 Mapbox 中叠加 Symbol 图层于多边形图层 为了在现有的多边形(填充)图层之上添加 `symbol` 类型的图层以显示文本标签或详细信息,可以按照如下方法操作: #### 创建并配置地图实例 首先初始化一个 Mapbox 地图对象,并加载基础样式。 ```javascript var map = new mapboxgl.Map({ container: 'map', // 容器ID style: 'mapbox://styles/mapbox/streets-v11', center: [-74.5, 40], // 初始中心点坐标 zoom: 9 // 缩放级别 }); ``` #### 添加 GeoJSON 数据源 接着定义一个多边形作为数据源的一部分。这可以通过GeoJSON格式完成,其中包含了地理特征及其属性。 ```javascript map.on('load', function () { map.addSource('polygon-source', { "type": "geojson", "data": { "type": "FeatureCollection", "features": [{ "type": "Feature", "geometry": { "type": "Polygon", "coordinates": [[[...]], [...]] // 多边形顶点数组 }, "properties": { name: "Example Polygon" } }] } }); // 绘制多边形图层 map.addLayer({ id: 'fill-layer-id', type: 'fill', source: 'polygon-source', layout: {}, paint: { 'fill-color': '#8ee8ff', 'fill-opacity': 0.5 } }); // 叠加 symbol 层用于标注名称或其他描述性文字 map.addLayer({ id: 'text-labels', type: 'symbol', source: 'polygon-source', layout: { 'text-field': ['get', 'name'], // 使用 feature properties 中的名字字段作为 label 文本 'text-font': ['Open Sans Bold', 'Arial Unicode MS Bold'], 'text-size': 12, 'text-anchor': 'center' }, paint: { 'text-color': '#ffffff', 'text-halo-width': 1, 'text-halo-color': '#000000' } }, 'fill-layer-id'); // 将此 layer 插入到指定位置之后 ('fill-layer-id' 后) }); ``` 上述代码片段展示了如何创建一个新的 `symbol` 类型图层并将它放置在一个已经存在的多边形图层上方。通过设置 `'text-field'` 参数为从 geojson 特征属性获取特定键值的方式来自动生成文本标签[^1]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值