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

 更新时间:2023年10月25日 08:43:12   作者:跳跳的小古风  
这篇文章主要介绍了vue如何使用mapbox对当前行政区划进行反选遮罩问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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

需求

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

  • 初始效果

  • 需求效果

       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',
			},
		});
  • 蒙版边界数据格式

  • 蒙版遮罩数据格式

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决vue中使用history.replaceState 更改url vue router 无法感知的问题

    解决vue中使用history.replaceState 更改url vue router 无法感知的问题

    这篇文章主要介绍了vue中使用history.replaceState 更改url vue router 无法感知的问题,本文给大家分享修复这个问题的方法,需要的朋友可以参考下
    2022-09-09
  • vue内点击url下载文件的最佳解决方案分享

    vue内点击url下载文件的最佳解决方案分享

    这篇文章主要给大家介绍了关于vue内点击url下载文件的最佳解决方案,文中通过实例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-02-02
  • Vue.js实现列表清单的操作方法

    Vue.js实现列表清单的操作方法

    Vue.js在设计上采用MVVM模式,当View视图层发生变化时,会自动更新到ViewModel.接下来通过本文给大家分享Vue.js实现列表清单的操作方法,需要的朋友参考下吧
    2017-11-11
  • 解决vue change阻止默认事件问题

    解决vue change阻止默认事件问题

    这篇文章主要介绍了vue change阻止默认事件问题,使用事件 @click.stop.native.prevent 解决 (使用@click.stop 或者 @click.prevent都无效,直接报错还阻止不了事件),需要的朋友可以参考下
    2022-01-01
  • 使用Vue开发一个实时性时间转换指令

    使用Vue开发一个实时性时间转换指令

    我们就来实现这样一个Vue自定义指令v-time,将表达式传入的时间戳实时转换为相对时间。下面小编给大家带来了使用Vue开发一个实时性时间转换指令,需要的朋友参考下吧
    2018-01-01
  • Vue组件模板的几种书写形式(3种)

    Vue组件模板的几种书写形式(3种)

    这篇文章主要介绍了Vue组件模板的几种书写形式(3种),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • vue中el-input绑定键盘按键(按键修饰符)

    vue中el-input绑定键盘按键(按键修饰符)

    这篇文章主要介绍了vue中el-input绑定键盘按键(按键修饰符),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • vue如何使用window.open打开页面并拼接参数

    vue如何使用window.open打开页面并拼接参数

    这篇文章主要介绍了vue如何使用window.open打开页面并拼接参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09
  • vue实现微信分享链接添加动态参数的方法

    vue实现微信分享链接添加动态参数的方法

    这篇文章主要介绍了vue微信分享链接添加动态参数的实现方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下
    2019-04-04
  • vue使用微信JS-SDK实现分享功能

    vue使用微信JS-SDK实现分享功能

    这篇文章主要介绍了vue使用微信JS-SDK实现分享功能,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08

最新评论