从零开始Vue项目中使用MapboxGL开发三维地图教程(五)加载点、线、面图层以及三维面图层(白模)

news2024/11/15 7:06:06

目录

      • 1、加载点图层
      • 2、加载线和面图层
      • 3、加载三维面图层(白模)

1、加载点图层

开发地图应用时,加载POI等点状数据,显示文字或者图标信息,mapbox-gl对应使用的是符号图层(symbol),下面的代码时使用Mapbox GL JS中的默认Marker方法向地图添加两个标记。

          // Create a default Marker and add it to the map.
          const marker1 = new this.$mapboxgl.Marker()
            .setLngLat([116.03238901390978, 38.913188059745586])
            .addTo(map);

          // Create a default Marker, colored black, rotated 45 degrees.
          const marker2 = new this.$mapboxgl.Marker({
              color: 'black',
              rotation: 45
            })
            .setLngLat([116.03238901390978, 38.913188059745586])
            .addTo(map);

marker1中心坐标116.03238901390978, 38.913188059745586。它使用默认的标记颜色。
marker2使用选项定义新Marker对象的颜色和旋转参数。

2、加载线和面图层

使用GeoJSON数据源向地图添加一个多边形,

首先使用addSource添加GeoJSON数据,该数据包含一个多边形。然后使用addLayer创建一个新的图层,并设置多边形外观的样式。为了在多边形周围添加轮廓,它再次使用addLayer来创建一个引用相同GeoJSON源的新线层。

代码示例:

          const chinaboundary = require('../assets/chinajson.json');
          console.log(chinaboundary)
          const chinaboundarysource = {
            type: 'geojson',
            data: {
              type: 'FeatureCollection',
              features: chinaboundary.features
            }
          }
          map.addLayer({
            id: 'chinaboundaryline',
            type: 'line',
            source: chinaboundarysource,
            paint: {
              'line-color': 'yellow',
              'line-opacity': 0.75,
              'line-width': 5
            }
          });
          map.addLayer({
            id: 'chinaboundarypolghon',
            type: 'fill',
            source: chinaboundarysource, // reference the data source
            layout: {},
            paint: {
              'fill-color': '#0080ff', // blue color fill
              'fill-opacity': 0.5
            }
          });

在这里插入图片描述

3、加载三维面图层(白模)

实现功能:加载带高度信息的面数据,显示简单建筑(白模)效果

三维面图层在mapbox-gl对应的是填充挤压(fill-extrusion)图层

在mapbox-gl加载fill-extrusion图层过程:通过加载geojson矢量数据,数据源加载完成后,再进行图层的设置。
以geojson数据为例:

 //添加geojson数据源,数据中必须有高度的字符,并且是数字类型的
          map.addSource('buildingdata', {
            'type': 'geojson',
            'data': {
              'type': 'Feature',
              'geometry': {
                'type': 'Polygon',
                "properties": {
                  "height": 20000
                },
                'coordinates': [
                  [
                    [115.720119, 39.685438],
                    [116.155905, 39.724518],
                    [116.275488, 39.548482],
                    [115.548794, 39.372887],
                    [115.720119, 39.685438],
                  ]
                ]
              }
            }
          });
          //添加三维建筑图层,id对应以上
          map.addLayer({
            'id': 'buildingdata',
            'type': 'fill-extrusion',
            'source': 'buildingdata',
            'paint': {
              // 设置填充颜色
              'fill-extrusion-color': '#fff000',
              //从属性中获得高度,这里用的是height字段
              'fill-extrusion-height': ['get', 'height'],
              // 透明度设置
              'fill-extrusion-opacity': 0.8
            }
          });

效果:

在这里插入图片描述

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

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

相关文章

Modbus通信介绍 网络高级工具使用

目录 Modbus简介 ModbusTCP协议格式 》1.报文头(共7字节) 》2.功能码 》3.数据 练习:读传感器数据,读1个寄存器数据,写出主从数据收发协议。 练习:写出控制IO设备开关的协议数据,操作1个…

ansible学习

在物理机查看环境,[kioskfoundation0 ~]$ cat /etc/rht 先清空当前环境,[kioskfoundation0 ~]$ rht-clearcourse 0 再切换rh294环境,[kioskfoundation0 ~]$ rht-setcourse rh294 验证环境是否切换成功,[kioskfoundation0 ~]$ cat…

230617已安装SqlServer2017Express,再安装一个SqlServer2017ExpressAdvanced试试

再安装一个 MsSqlServer 试试 再安装一个 MsSqlServer 试试, 这次用高级版 之前已经安装了 一个 MsSqlServer2017Express一个MsSqlServer2017LocalDB 现在再安装一个 MsSqlServer2017ExpressAdvanced 直接下一步 等待 下个页面列出了已经安装的MsSqlServer实例 之前已…

【群智能算法改进】一种改进的白鲸优化算法 改进白鲸优化算法 改进后的EBWO[2]算法【Matlab代码#42】

文章目录 【获取资源请见文章第5节:资源获取】1. 原始BWO算法2. 改进后的EBWO算法2.1 准反向学习QOBL策略2.2 旋风觅食策略 3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节:资源获取】 1. 原始BWO算法 白鲸优化算法 (BWO&#xff…

STM32pwm 时钟 配置 周期 频率 关系配置原理

一 概念 PWM(脉冲宽度调制)是一种常用的电子信号调制技术,用于控制电子设备中的电平和电流。它通过调整脉冲的宽度来控制信号的平均功率。 在PWM信号中,一个周期由一个固定的频率确定,称为PWM频率。每个周期内&#…

分布式锁服务关键技术和常见解决方案

前言 锁,核心是协调各个使用方对公共资源使用的一种机制。当存在多个使用方互斥地使用某一个公共资源时,为了避免并行使用导致的修改结果不可控,需要在某个地方记录一个标记,这个标记能够被所有使用方看到,当标记不存在…

Matter.js 插件:matter-wrap(世界是圆的)

theme: smartblue 本文简介 点赞 关注 收藏 学会了 记得以前看爆笑校园里有一集讲到,一个人对着前面开了一枪,过了一阵子弹打中他自己的后脑勺。作者想通过这个冷笑话告诉大家一件事:地球是圆的。 在 Matter.js 世界里,默认是没…

stable-diffusion-webui远程访问、插件在线安装

本篇文章可以解决以下问题:stable-diffusion-webui 安装插件报错、没有用户登录安全认证、云主机安装后无法远程访问。 成功安装stable-diffusion-webui后,可以通过命令 bash webui.sh 启动。启动后可以通过 http://127.0.0.1:7860访问。但无法进行远程…

QML快速上手1 - 预备知识

目录 前言QtQuick 预备知识二维坐标系textimagemousearea组件定位元件布局项输入元素 前言 此笔记及后续所有笔记均基于如下环境 Qt Quick 2.12Qt 5.12 参考文献: qmlbook 以下所有笔记均从上述qmlbook中选取精华得来,如果嫌英文太多或者原文太长&am…

【论文系列解读】MiniGPT-4: 增强视觉语言理解与先进的大型语言模型

Minigpt4 MiniGPT-4: Enhancing Vision-Language Understanding with Advanced Large Language Models MiniGPT-4: 增强视觉语言理解与先进的大型语言模型 (0) 总结&实测 minigpt是先提出来的,将视觉编码器和LLM对齐,blip2和它还是有蛮大区别的。…

Python中对基本文件操作

1.文件的作用 保存数据放在磁盘中 2.打开文件 fopen(‘文件’,‘w’)或者fopen(‘文件’,‘r’) 3.文件操作 3.1 写数据(write) 如果文件不存在那么创建,如果存在那么就先清空,然后写入数据 对象open(“文件”,w) 对象.write(“写入数…

论文浅尝 | 用于推荐的知识自适应对比学习

笔记整理:俞洪涛,浙江大学硕士,研究方向为知识图谱表示学习 链接:https://dl.acm.org/doi/10.1145/3539597.3570483 动机 在基于知识图谱的推荐系统中,用户和项目的交互信息通常会在模型中占主导地位,而KG中…

OPA Gatekeeper对Kubernetes资源操作限制

OPA介绍 Open Policy Agent(OPA,发音为“oh-pa”)是一个开源的通用策略引擎,它统一了堆栈中的策略执行。OPA 提供了一种高级声明性语言,可让您将策略指定为代码和简单的 API,以从您的软件中卸载策略决策制…

第七十六天学习记录:计算机硬件技术基础:Intel系列微处理器

Intel系列微处理器概述 8086/8088微处理器 8086/8088微处理器是英特尔公司于1978年推出的16位处理器,在80年代是个非常流行的芯片,被广泛用于个人电脑和工作站。它是x86家族处理器的一员,被视为现代PC体系结构的基础。 8086/8088微处理器的…

对耳朵伤害最小的耳机类型,列举几款不入耳的骨传导耳机

骨传导耳机是最近几年火爆起来的耳机,它是将声音转化为不同频率的机械振动,通过人的颅骨、骨迷路、内耳淋巴液、螺旋器、听神经、听觉中枢来传递声波。与普通耳机相比最大的区别是声音不经过外耳道,避免了耳道长时间堵塞导致的中耳炎疾病发生…

基于机器学习算法:朴素贝叶斯和SVM 分类-垃圾邮件识别分类系统(含Python工程全源码)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python 环境安装pytesseract注册百度云账号 模块实现1. 数据模块2. 模型构建3. 附加功能 系统测试1. 文字邮件测试准确率2. 网页测试结果 工程源代码下载其它资料下载 前言 本项目采用朴素贝叶斯和支持向量机(S…

石化园区宽带自组网应急通信方案

痛点需求 传统的通信手段在可靠性、即时性、安全性、可视化等方面的能力相对较弱,无法从根本上满足石化园区的应急通信需求。结合某大型石化园区实际需求,现亟需建设一套高可靠、高安全、广覆盖、机动灵活且支持多媒体通信的应急通信系统,以…

阿里云建站主机之虚拟主机、轻量或云服务器ECS

阿里云搭建网站主机可以选择云服务器ECS、云虚拟主机或轻量应用服务器,轻量应用服务器2核2G3M带宽一年108元,2核4G4M带宽轻量服务器一年297.98元12个月,云服务器ECS可以选择通用算力型u1,云虚拟主机共享型119元一年起,…

大数据Doris(四十三):kafka 简单json格式数据导入到Doris

文章目录 kafka 简单json格式数据导入到Doris 一、创建 Doris 表 二、创建 Kafka topic 三、创建 Ro

AI实战营:生成模型+底层视觉+AIGC多模态 算法库MMagic

目录 环境安装 黑白照片上色 文生图-Stable Diffusion 文生图-Dreambooth 图生图-ControlNet-Canny 图生图-ControlNet-Pose 图生图-ControlNet Animation 训练自己的ControlNet 环境安装 mim install mmagicpip install opencv-python pillow matplotlib seaborn tqdm …