首页 > 其他分享 >mapboxgl V3 Slot插槽使用介绍

mapboxgl V3 Slot插槽使用介绍

时间:2024-07-31 13:49:56浏览次数:8  
标签:Slot slot bottom 插槽 V3 mapbox mapboxgl 图层 id

一、介绍

插槽允许在样式中创建定义明确的插入点,如:通常“面”图层需要插入到“线”图层下方,在标准样式之前,需要通过指定图层 id 来实现,一旦 id 发生变化,则会抛出错误,而在新的标准样式中,只需要指定相应的插槽即可。

{
  "layers": [
    ...,
    {
      "id": "bottom",
      "type": "slot",
      "metadata": {
        "mapbox:description": "Above polygons (land, landuse, water, etc.)"
      }
    },
    ...
  ]
}

当前提供的标准样式(mapbox://styles/mapbox/standard)中定义了三个插槽:bottom, middle 和 top。

bottom:突出显示路径和道路、建筑物、模型和注记下方的区域(面)。
middle:覆盖区域,或在路径和道路上方,但在建筑物、模型和注记下方添加的线条。
top:将数据放置在 POI 图层上方,但在地点和交通注记下方。

可通过map.getSlots()获取。

二、使用

在Style定义所需插槽

const map = new mapboxgl.Map({
  container: 'mapView',
  accessToken:'***',
  style: {
    sources: {},
    layers: [
      {
        id: 'bottom',
        type: 'slot',
        metadata: {
          'mapbox:description': '面',
        },
      },
      {
        id: 'middle',
        type: 'slot',
        metadata: {
          'mapbox:description': '线',
        },
      },
      {
        id: 'top',
        type: 'slot',
        metadata: {
          'mapbox:description': '点',
        },
      },
    ],
    version: 8,
  },
  center: [113,23],
  zoom: 3,
  attributionControl: false,
  minZoom: 1,
  maxZoom: 18,
});

然后在添加图层的时候,指定插槽名称就可以了

this.map?.addLayer({
  id: layerId,
  type: 'symbol',
  slot: 'top',
  source: layerId,
  layout: {
    'icon-image': '{icon}',
    'icon-anchor': 'bottom',
  },
  paint: {
    'text-color': ['get', 'color'],
    'text-halo-color': 'white',
    'text-halo-width': 2,
  },
});

https://docs.mapbox.com/style-spec/reference/slots

标签:Slot,slot,bottom,插槽,V3,mapbox,mapboxgl,图层,id
From: https://www.cnblogs.com/echohye/p/18334464

相关文章

  • 微信电脑版v3.9.11.17 防撤回版 多开版
    版本特色:1、看到对方撤回的消息2、多账号可正常登录修改原理,如下图:使用说明:解压后,双击start.bat来运行软件下载地址:Wechat防撤回版v3.9解压密码:helloh下载时可能会有广告,忽略,等下载结束即可部分杀软会因该版本软件未购买签名证书(如下图)而报毒,可通过加入排除项或者信......
  • Speedybee405v3 与 msp_rx 的 USB 通信
    我正在尝试让飞行控制器405speedybeev3使用Pythonmultiwii通过USB进行通信。我将接收器设置为msp_rx,但无法显示IMU数据。当我将USB插入计算机并使用multiwii.py时,它应该获取IMU数据,但飞控却没有不显示任何值。我理解你想通过Python的multiwii库读取......
  • 网络安全靶场系列(臃肿版):PbootCMS(V3.2.5)遇到的坑(您的服务器环境不支持gd扩展,将无法使
    PbootCMS(V3.2.5)遇到的坑(您的服务器环境不支持gd扩展,将无法使用验证码!)前言dockerphpgd扩展,docker安装php扩展gd库一、安装nginx、php、mysql镜像二、运行、停止、删除容器三、安装php扩展gd库四、扩展知识1、docker-php-source2、docker-php-ext-enable......
  • CF Div3 962补题 E-F
    CFDiv3962补题E-FE.Decode链接:Problem-E-Codeforces简要题意:给你一个长度为\(n\)的二进制字符串\(s\)。对于每一对整数\((l,r)\)\((1\leql\leqr\leqn)\)中,数出\((x,y)\)\((l\leqx\leqy\leqr)\)这样的整数对的个数。\((l\leqx\leqy\leq......
  • 2024-07-29 如何判断自定义组件中的slot是否被传入值==》defineSlots或this.$slots
    假如你的自定义组件是这样:<template><div><button:class="`btn-${type}`"><slot></slot></button></div></template><script>exportdefault{name:"tButt......
  • 征服 Docker 镜像访问限制:KubeSphere v3.4.1 成功部署全攻略
    近期,KubeSphere社区的讨论中频繁出现关于Docker官方镜像仓库访问受限的问题。本文旨在为您提供一个详细的指南,展示在Docker官方镜像访问受限的情况下,如何通过KubeKeyv3.1.2一次性成功部署KubeSpherev3.4.1以及Kubernetesv1.28.8集群。这将帮助您克服访问限制,确保......
  • 经典CNN模型(九):MobileNetV3(PyTorch详细注释版)
    一.MobileNetV3神经网络介绍MobileNetV3是MobileNet系列的第三代模型,由Google在2019年提出,旨在进一步优化模型的效率和性能,特别是在移动设备和边缘计算设备上。与前一代相比,MobileNetV3引入了多项改进,包括使用神经架构搜索(NeuralArchitectureSearch,NAS)、自适......
  • Codeforce 962 Div3 C~E 题解
    C题目大意​给定两个字符串a,b,q个询问,每次操作可以将a[i]赋值为任意一个字符,每次询问[l,r]区间内使得sorted(a[l,r])==sorted(b[l,r])的最小操作次数分析​ 不妨先考虑一个区间如何判断sorted后的字串是否相等,发现跟字符出现的次数有关,于是考虑前缀和预处理每一个26......
  • 从图像中切割YOLOv3预测结果
    我使用德国交通标志检测数据集来训练YOLOv3。当我预测时,我就会得到结果。但是,使用此代码我似乎无法在检测结果周围绘制边界框。现在,这不是我的意图。我想把结果删掉。但我不确定如何将YOLOv3预测结果转换为图像上的坐标,以便将其剪掉。你能帮我解决这个问题吗?classBoundBox:......
  • Codeforces 913 div3 A-G
    A题意分析把给定的坐标的那一行和那一列的其他所有坐标都输出来C++代码#include<iostream>usingnamespacestd;intmain(){ intt; cin>>t; while(t--){ strings; cin>>s; for(inti=1;i<=8;i++){ if(i+'0'!=s[1])cout<<s[0]<<i<<end......