mapbox面图层标注

news2025/1/11 8:49:44

mapbox并没有一个属性类似于’text-field’的symbol图层的直接可以标注的办法,这里笔者提供两种其他的面图层标注的办法用来大家参考

效果图

在这里插入图片描述

方案一 把面图层当做点图层直接展示

在mapbox里面,面图层是可以直接渲染成线图层和点图层的,这里我们的图层标注就是直接将面图层渲染成点图层,一个souce,两个layer,渲染成一个面,在渲染成点,点会在每一个闭合的要素上都会有标注,这个方案就是快速简单,缺点就是有要素不规范的时候,存在一种情况,就是有好多个稀碎的面组成一个面,导致出现在一个面会出现很多个点标注,解决办法就是自己处理一下geojson文件,把那些稀碎的给它删了。

         map.addSource('county',{
            type:'geojson',
            data:'你的geojson文件'
         })
        let countyLayer = {
            id:'county',
            source:'county',
            'type':'fill',
            maxzoom:8,
            paint: {
                // 'fill-opacity': 0.4,
                'fill-color':'blue',
            },
            layout: {
                visibility: 'visible'
            },
        }
          let countyNoteLayer = {
            id:'countyNote',
            source:'county',
            'type':'symbol',
            maxzoom:8,
            paint: {
                'text-color':"#505050",
                'text-halo-color':"#ffffff",
                "text-halo-blur": 1, 
                'text-halo-width':1,
            },
            layout: {
                visibility: 'visible',
                'text-field': "{county}",
                'text-size':12,
                'text-font': [ 'Microsoft YaHei' ],
                'icon-allow-overlap' : true,
                'text-allow-overlap': true,
                'text-anchor': 'center'
            },
        }

方案二 把面geojson取每个要素的中心点改造为点geojson

这里我提供一个函数。这里使用了turf.center方法来取要素中心点,就是两个souce,两个layer,一个面souce来渲染面,把面的geojson封装成点的souce来渲染点用来标注

//把面取中心点封装成点数据
const changeFillToPoint = (fillGeojson)=>{
  let pointGeojson =  fillGeojson.features.map(function(feature) {
    let center = turf.center(feature);
    return {
      "type": "Feature",  
      "geometry": {  
        "type": "Point",  
        "coordinates": center.geometry.coordinates
      },  
      "properties": {
        ...feature.properties
        // 可以包含原始面的属性,或者添加新的属性  
      }  
    }; 
  })
  return pointGeojson
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1464767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Aigtek高压放大器是什么东西做的

在许多电子应用中,需要将低电压信号放大到较高电压以满足特定的需求。为了实现这个目标,高压放大器被广泛采用。高压放大器是一种专用电子设备,使用特定的电路和器件来增益输入信号的电压。它通常由以下几个主要组成部分构成。 电源供应 高压…

WRF WPS : namelist 学习笔记

WPS & share 采用ARW方式进行模拟,除了ARW还有NMM,不过科研上常用ARW: wrf_core ‘ARW’最大的嵌套层数为3层,初学者一般是从一层开始逐步加多: max_dom 3 # max_dom 2设置模式开始和结束 的时间,从左到右依次是第一层第二层和第三…

轻松掌握opencv的8种图像变换

文章目录 opencv的8种图像变换1. 图像放大、缩小2. 图像平移3. 图像旋转4. 图像仿射变换5. 图像裁剪6. 图像的位运算(AND, OR, XOR)7. 图像的分离和融合8. 图像的颜色空间 opencv的8种图像变换 1. 图像放大、缩小 我们先看下原图 import cv2 import ma…

文献速递:GAN医学影像合成--基于生成对抗网络的肺部图像分类的多域医学图像翻译生成

文献速递:GAN医学影像合成–基于生成对抗网络的肺部图像分类的多域医学图像翻译生成 01 文献速递介绍 在2019年底,一种称为2019冠状病毒病(COVID-19)的新型冠状病毒肺炎出现,迅速成为全球性大流行。感染COVID-19可以…

本机防攻击简介

定义 在网络中,存在着大量针对CPU(Central Processing Unit)的恶意攻击报文以及需要正常上送CPU的各类报文。针对CPU的恶意攻击报文会导致CPU长时间繁忙的处理攻击报文,从而引发其他业务的中断甚至系统的中断;大量正常…

IOS和Android系统架构

IOS的系统架构 iOS的为Objective-C和Swift,Objective-C的优势是效率高但比较“唯一”。 响应顺序:Touch--Media--Service--Core架构 分为四个层次:核心操作系统层(core OS layer)、核心服务层(Core Serv…

STM32Cubemx TB6612直流电机驱动

一、TB6612FNG TB6612是一个支持双电机的驱动模块,支持PWM调速。PWMA、AIN1、AIN2 为一组控制引脚,PWMA 为 PWM 速度控制引脚,AIN1、AIN2 为方向控制引脚;PWMB、BIN1、BIN2 为一组控制引脚,PWMB 为 PWM 速度控制引脚&…

一种基于动态水位值的Flink调度优化算法(flink1.5以前),等同于实现flink的Credit-based反压原理

优化flink反压 说明1 flink反压介绍1.1 介绍1.2 大数据系统反压现状1.4 flink task与task之间的反压1.5 netty水位机制作用分析 2 反压优化算法3 重点! 但是 可但是 flink1.5以后的反压过程。4 flink反压问题的查找瓶颈办法 说明 首先说明,偶然看了个论…

短剧小程序系统,重塑视频观看体验的科技革命

随着科技的飞速发展,人们对于数字化内容的消费需求也在不断增长。在这个大背景下,短剧小程序作为一种新型的视频观看方式,正逐渐受到大众的青睐。本文将探讨短剧小程序的发展背景、特点以及市场前景,分析其在重塑视频观看体验方面…

哪个牌子的护眼台灯比较好用?纯干货护眼台灯品牌推荐

有些家长陪孩子写作业的时候发现他们总是在揉眼睛,学习时间久了还会用力眨眼睛。其实无论是白天还是晚上,孩子在家学习,看书,搭积木等,如果灯光不给力,一定要用台灯来给孩子补光,避免因为光线环…

Linux系列讲解 —— 【Vim编辑器】在Ubuntu18.04中安装新版Vim

平时用的电脑系统是Ubuntu18.04,使用apt安装VIM的默认版本是8.0。如果想要安装新版的Vim编辑器,只能下载Vim源码后进行编译安装。 目录 1. 下载Vim源码2. 编译3. 安装4. 遇到的问题4.1 打开vim后,文本开头有乱码现象。4.2 在Vim编辑器中&…

测试环境搭建整套大数据系统(三:搭建集群zookeeper,hdfs,mapreduce,yarn,hive)

一:搭建zk https://blog.csdn.net/weixin_43446246/article/details/123327143 二:搭建hadoop,yarn,mapreduce。 1. 安装hadoop。 sudo tar -zxvf hadoop-3.2.4.tar.gz -C /opt2. 修改java配置路径。 cd /opt/hadoop-3.2.4/etc…

【Spring】SpringBoot 热部署

目 录 一.添加热部署框架支持二.Settings 开启项目自动编译三.设置运行项目中的热部署( idea 2021.2版本)四.使用 debug 方式运行项目代码示例&#xff1a; 一.添加热部署框架支持 <dependency><groupId>org.springframework.boot</groupId><artifactId&…

适合中国人体质的低成本创业项目,抖音小店抓住小钱到大钱的之路

大家好&#xff0c;我是电商花花。 人啊&#xff0c;这一辈子想要赚钱&#xff0c;想要脱贫致富&#xff0c;小钱靠勤&#xff0c;中财靠运&#xff0c;大富靠命。 我还依稀记得母亲说的一句话&#xff0c;小钱不勤不聚&#xff0c;还谈何赚大钱&#xff0c;所有的大钱也都是…

Unity3d Mesh篇(二)— 创建Unity Logo平面

文章目录 前言一、Mesh组成二、使用步骤GetVertices方法GetNormal方法GetTriangles方法OnDrawGizmos方法 三、效果四、总结 前言 本篇将使用C#脚本实现在Unity中创建平面&#xff0c;并通过调整顶点、UV坐标和三角形来生成Unity Logo 的效果。 一、Mesh组成 顶点&#xff08;…

了解红帽认证,看这篇就够了!

红帽公司成立于1993年&#xff0c;是全球首家收入超10亿美元的开源公司&#xff0c;总部位于美国&#xff0c;分支机构遍布全球。 红帽公司作为全球领先的开源和Linux系统提供商&#xff0c;其产品已被业界广泛认可并使用&#xff0c;尤其是RHEL系统在业内拥有超高的Linux系统…

css3d制作正方体

使用css3d技术 &#xff0c;制作一个可以动态动画的正方体模型 效果图&#xff1a; 代码如下&#xff1a; <!DOCTYPE html> <html> <head><style>/* 设置高度宽度100%并且左右居中、上下居中 */html,body {width: 100%;height: 100%;display: flex…

C#串口 Modbus通讯工具类

一、安装Modbus包 二、创建modbushelper类 1、打开串口 public bool IfCOMOpend; //用于实例内的COM口的状态 public SerialPort OpenedCOM;//用于手动输入的COM转成SERIAL PORT /// <summary> /// 打开串口 /// </summary> /// <param name="COMname&quo…

2-22算法习题总结

贪心问题 凌乱的yyy / 线段覆盖 题目背景 快 noip 了&#xff0c;yyy 很紧张&#xff01; 题目描述 现在各大 oj 上有 n n n 个比赛&#xff0c;每个比赛的开始、结束的时间点是知道的。 yyy 认为&#xff0c;参加越多的比赛&#xff0c;noip 就能考的越好&#xff08;假…

Day04-课后练习以及参考答案(流程控制语句_循环结构)

文章目录 巩固题1、5个一行输出1-100之间的偶数2、趣味折纸3、实现输出如下任一个数字三角形4、计算这一天是这一年的第几天 拔高题1、计算这一天是这一年的第几天2、计算这一天是在打鱼还是晒网3、打印『X』对称图形4、打印空心菱形 巩固题 1、5个一行输出1-100之间的偶数 &…