vue 使用mapbox对当前行政区划进行反选遮罩

6 篇文章 6 订阅

需求:给指定区划以外的地方添加蒙版遮罩

初始效果
在这里插入图片描述

需求效果
在这里插入图片描述


       map.addLayer({
			//蒙版边界
			id: 'mb-line',
			type: 'line',
			source: {
				type: 'geojson',
				data:reData, //区划的面数据
			},
			paint: {
				'line-color': 'rgba(100,149,237,0.8)',
				"line-width": 8
			},
			layout: {
				visibility: 'visible',
			},
		});
		map.addLayer({
			//蒙版图层   //通过边界数据反选 达到挖洞效果
			id: 'mb-tag',
			type: 'fill',
			source: {
				type: 'geojson',
				data: {
					type: 'Feature',
					geometry: {
						type: 'Polygon',
						coordinates: [
							[
							// 多边形外围 需要进行遮罩的点 这里是给世界地图加遮罩 所以是世界的四个端点
								[-180, 90],
								[180, 90],
								[180, -90],
								[-180, -90],
							],
							// 第 1个孔 
							//例如:[
                            //  [31.4566,121.2671],
                            //  [31.3481,121.2382],
                            //  [31.3934,121.3659]
                            // ],
							//这里从世界地图挖掉指定区划的面数据,
							//我们将原来的面数据处理一样
							//let mbData = results.geometry.coordinates[0].flat(1);
							//取面数据 coordinates的第一层并拉平 形成例如的经纬度数组
							mbData,
						],
					},
				},
			},
			paint: {
				'fill-color': 'rgba(200,202,199,.68)',
				// 'fill-opacity': 1 /* 透明度 */,
			},
			layout: {
				visibility: 'visible',
			},
		});

蒙版边界数据格式
在这里插入图片描述
蒙版遮罩数据格式
在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值