mapbox-gl知识点整理

Mapbox GL JS 中文文档 Mapbox GL JS-地图是通过在浏览器中而不是在服务器上将矢量瓦片与样式规则相结合来动态渲染的,这使得可以根据用户交互来更改地图的样式和显示数据。在开始使用Mapbox GL JS之前,您需要有一个Mapbox访问令牌,并使用 CDN 或 Mapbox GL-npmpackage 将 Mapbox GL JS.添加到您的项目中。由于Mapbox GL JS中的层是远程的,所以它们是异步的。有关Mapbox GL JS地图中使用的Mapbox设计和自定义地图样式的更多示例,请参阅我们的。 阅读详情
1.mapbox概述:

mapbox致力打造全球最漂亮的个性化 地图,样式的设置都支持矢量瓦片。目前mapbox-gl.js的版本是11.0版本,样式版本由7升到8。默认的投影坐标是3857。加载矢量切片服务时需要加载sprite【图标符号】和glyphs【指定矢量图层的字体】。其中sprite用来指定图标资源的url,一般情况下是.json或者.png后缀结尾;glyphs则是以.pdf后缀结尾。矢量切片有加载速度快,样式好看,可扩展的优点,缺点是底图加载不快。

2.map的概述:

map的组成分成两部分,一部份是数据来源【source】,另外一部分是数据呈现在界面的样子【style】。

(1)source包括vector【矢量瓦片】、raster【栅格瓦片】、geojson【各种矢量数据】、image【图片】和video【视屏】等;

(2)layer包括background【不需要source】、fill、symbol、raster、circle和line等图层;

3.运算符:

(1)对于数值执行运算符:【+    -      *     /】

        如: map.setFilter('symbol', ['==', 'name', 'dangerous']);

(2)操作布尔值和条件运算符的逻辑运算符 :【case 、 let】

    如:'circle-color': [
  'case',
  ['<', ['get', 'speed'], 10.8], 'rgba(0,0,0,0)', //<10.8
  ['<', ['get', 'speed'], 17.2], 'rgba(153, 255, 153, .9)', //>=10.8 & <17.2
  ['<', ['get', 'speed'], 24.5], 'rgba(102, 204, 255, .9)',
  ['<', ['get', 'speed'], 32.7], 'rgba(255, 255, 102, .9)',
  ['<=', ['get', 'speed'], 41.5], 'rgba(253, 139, 0, .9)',
  ['<=', ['get', 'speed'], 50.1], 'rgba(255, 51, 0, .9)', //>=41.5 & <50.1
  'rgba(255, 0, 255, .9)' // 默认值, >=50.1
]

(3)操作字符串的字符串运算:【如:string转number】;

(4)数据源功能属性的访问:【get】

如: "icon-color": [
                "case",
                ["boolean", ["feature-state", "hover"], false],
                "#F89806",
                ["boolean", ["==", ["get", "state"], 0], false],
                "#2363F8",
                ["get", "color"]
              ];

(5)定义当前地图视图的参数访问:【zoom】

4.标记介绍:

点标记 Marker、灵活点标记 ElasticMarker、圆形标记 CircleMarker和文本标记 Text;

5.map常用方法总结:

(1)setLayoutProperty:在指定的样式层中设置布局属性的值;

          map.setLayoutProperty(layer,name,value);

       map.setLayoutProperty(clickedLayer, 'visibility', 'none');//图层隐藏
       map.setLayoutProperty(clickedLayer, 'visibility', 'visible');//图层显示

(2)setData:修改数据

       map.getSource('drone').setData(geoJson);//修改数据

(3)设置鼠标样式:

        map.getCanvas().style.cursor = 'pointer';

       map.setCursor('url(./image/hand.png) 4 12, auto');//自定义图片

      var canvas = map.getCanvasContainer();
      canvas.style.cursor = 'move';
      canvas.style.cursor = 'grab';
      canvas.style.cursor = 'grabbing';

(4)获取图层:

         map.getStyle().layers;

(5)fitBounds:平移和缩放地图到适合的范围.

     map.fitBounds([
           [32.958984, -5.353521],
           [43.50585, 5.615985]
        ]);

或者

var bound =  {_sw: LngLat {lng: -73.9876, lat: 40.7661}, _ne: LngLat {lng: -73.9397, lat: 40.8002}};

 map.fitBounds(bound , {
        padding: 20
      });

(6)setPaintProperty:在指定的样式层中设置一个绘画属性的值

    map.setPaintProperty(图层id,'line-color','#555bff');

(7)设置语言标识:

      map.addControl(new MapboxLanguage({
            defaultLanguage: 'zh'   //中文标识
        }));

(8)设置指定id图层的缩放范围

         map.setLayerZoomRange(layerId, minzoom, maxzoom);

Mapbox GL JS介绍和简单使用 可以显示立体地图并且支持移动端,是一款十分优秀的WEB GIS开发框架。Mapbox GL JS 是Mapbox的一个开源客户端库,用于渲染 Web 端的可交互地图。作为 Mapbox 生态系统的一部分,它通常与 Mapbox 提供的其他服务集成在一起,统一对外使用。WebGL渲染意味着高性能,MapboxGL能够渲染大量的地图要素,拥有流畅的交互以及动画效果、可以显示立体地图并且支持移动端,是一款十分优秀的WEB GIS开发框架。 阅读详情

相关推荐

【一库】mapbox-gl!一款开箱即用的地图引擎

mapbox-gl。

发果叁 5217

mapbox-gl-draw API 最全文档 (MapboxDraw)

mapbox-gl-draw API 最全文档 (MapboxDraw)

weixin_43959963的博客 9401

5分钟搞定Mapbox GL点击查询GeoServer WMS图层属性(附完整代码)

本文详细介绍了如何在Mapbox GL中集成GeoServer WMS服务并实现高效的点击查询功能。文章从坐标系对齐、WMS图层加载等基础配置入手,逐步讲解了通过GetFeatureInfo请求实现属性查询的核心步骤,并提供了完整的实战代码示例,帮助开发者快速构建交互式地图应用。

qq_27496129的博客 1194

MapboxGL系列(一)基础知识介绍

mapboxgl基础知识介绍

qq_37731856的博客 7178

mapbox-gl.js多坐标系切片加载与绘图控件实现全解析

在Web GIS开发中,坐标系与地图切片服务是底层基础。WGS84、Web墨卡托(3857)与CGCS2000(4490)是常见坐标系,各有适用场景。切片服务通过TileMatrix将全球网格化,不同坐标系对应不同网格规则。mapbox-gl.js作为主流Web地图引擎,默认支持Web墨卡托,但加载CGCS2000等非标准切片需自定义坐标转换。本文基于实际项目,讲解GeoServer发布多坐标系WMTS切片、mapbox-gl.js多源加载配置,以及结合Mapbox Draw实现绘图标绘与坐标拾取。面向国土

weixin_31412781的博客 303

Mapbox GL v2 加载 4326/3857/4490 切片坐标系踩坑与实战

GIS地图开发中,坐标系与投影是数据可视化的基石。Web墨卡托投影(EPSG:3857)是互联网地图的事实标准,而WGS84(EPSG:4326)与CGCS2000(EPSG:4490)则是常见的地理坐标系。不同坐标系下的瓦片网格组织方式差异,导致直接加载时出现错位、花屏等问题。本文以Mapbox GL JS v2.13.0为例,解析坐标系底层原理,介绍通过服务端重投影或前端transformRequest坐标换算加载异构切片的方法,并集成mapbox-gl-draw实现绘图与坐标转换。适合GIS前端与We

weixin_31714129的博客 240

Mapbox-GL 事件体系和使用方法的详细讲解

Mapbox GL JS 提供了一套强大且灵活的事件系统,用于监听和响应地图的各种交互和状态变化。通过事件,开发者可以捕获用户操作(如点击、缩放)或地图状态变化(如加载完成、数据更新),并执行自定义逻辑。地图交互事件:如点击、双击、鼠标移动、触摸操作等。地图状态变化事件:如地图加载完成、移动、缩放等。图层和数据事件:如图层添加、数据加载等。错误事件:如加载失败、数据解析错误等。这些事件通过Map对象的on方法进行监听,结合事件处理函数实现功能。

cuijiying的博客 1671

Windows电脑如何用MobaXterm连接宇树G1机器人?保姆级SSH配置指南

本文提供了一份详细的保姆级教程,指导Windows用户使用MobaXterm通过SSH连接宇树G1机器人。内容涵盖从物理网络配置、MobaXterm安装与SSH会话创建,到文件传输、X11转发等高级功能,并包含常见问题排查与安全加固建议,帮助开发者快速建立稳定可靠的远程开发连接。

purple的博客 877

初识mapbox GL

一、概述 最近由于项目的需求,借此机会对mapbox GL做了一个系统的学习,同时也对整个学习过程做一个记录,一方面留作自用,另一方面也希望看到此文的人在学习mapbox GL的时候,能够有所启发、有所收获。 二、快速认识 很多人在学习一个新的webis框架的时候,表示狗咬刺猬——无从下口。对于这一点,我的建议是快速认识。 1.目的 快速认识的目的有两个:1、对框架有一个认知性的理解;2、甄别框架...

LZUGIS 4554

树上柑橘检测实战:自制数据集与YOLO训练全流程复盘

目标检测模型的性能上限往往由训练数据决定,尤其在农业视觉这样的复杂场景中,公开数据集与真实环境的差异常导致模型漏检、误检频发。高质量的标注数据是模型泛化的基础,从采集、清洗到统一标注规范,每一步都直接影响最终效果。对于检测任务而言,VOC与YOLO两种主流标注格式的转换是工程落地的常见环节,理解坐标归一化原理并做好校验,能有效避免训练事故。在模型训练阶段,合理划分数据集、谨慎选择数据增强策略,并结合切片推理解决小目标漏检,是果园场景下提升精度的关键。这套基于2511张果树图像的单类别检测流程,不仅支撑了柑橘

weixin_29057163的博客 230

保姆级教程:用Python脚本一键把选股结果导入通达信自选股(附完整代码)

本文提供了一份详细的Python自动化教程,教你如何将选股结果一键导入通达信自选股。通过解析通达信文件结构、编写Python脚本实现股票代码转换和批量导入,大幅提升量化交易效率。教程包含完整代码示例,特别适合使用通达信(TDX)的投资者和量化交易开发者。

weixin_30915951的博客 358

mapbox-gl开发:自定义图层CustomLayer

在mapbox-gl过程中,当现有的图层效果不能满足实现效果时,可以使用自定义图层,关于CustomLayer API的官方说明: https://docs.mapbox.com/mapbox-gl-js/api/properties/#customlayerinterface mapbox-gl开发:deck.gl轨迹图效果,deck.gl叠加在mapbox-gl上的图层也是通过CustomLayer实现的。 CustomLayer上可以以webgl的方式实现,也能够以html5 canvas形式去实现

地理信息技术杂谈 博客,欢迎技术交流 4992

Xilinx PCIe IP核示例工程仿真流程与关键任务解析

本文详细解析了Xilinx PCIe IP核示例工程的仿真流程与关键任务。通过搭建仿真环境、解读初始化日志,并深入剖析TSK_TX_MEMORY_WRITE_32等核心任务的TLP报文生成与交互过程,帮助开发者掌握PCIe IP核的仿真调试方法,为实际硬件设计提供可靠的验证基础。

weixin_28314575的博客 503

关于使用mapbox的一些记录

二、绘制标记 https://www.mapbox.com/mapbox-gl-js/example/custom-marker-icons/十一、修改鼠标 https://www.mapbox.com/mapbox-gl-js/example/center-on-symbol/十四、动态绘制区域 https://www.mapbox.com/mapbox-gl-js/example/mapbox-gl-draw/

greed 2962

[CSP-X2025山东小学组T4]勇者斗恶龙

[CSP-X2025山东小学组T4]勇者斗恶龙,动态规划

少儿编程乔老师 148

RDkit入门

今天开始写RDkit的入门教程,每天学习和写一小点,相信一句话“不积跬步无以至千里,不积小流无以成江海”,所以就慢慢来,一点一滴积累叭,从最简单的开始喽希望自己每天都能保持写博客的好习惯,把自己的代码笔记就极在这里,RDkit一块啃了很久的骨头,今天终于要下定决心,好好总结一波了,希望保持这个更新的频率,每天都能有所学。............

博客而已 6682

手把手教你用GeoServer 2.15.0+Mapbox-GL搭建离线地图服务(含跨域解决方案)

本文详细介绍了使用GeoServer 2.15.0与Mapbox GL JS搭建私有离线地图服务的完整流程。内容涵盖环境部署、矢量切片发布、跨域访问配置及前端集成实战,重点解决了离线部署中的关键问题,为企业构建安全、定制化的地图应用提供了稳定方案。

mac99的博客 875

基于Python的智能动漫更新监控爬虫系统:从原理到实战

本文详细介绍了如何使用Python构建一个智能化的动漫更新监控系统,涵盖从基础爬虫到高级自动化监控的全套解决方案。文章将深入探讨最新的网络爬虫技术,包括异步请求、反反爬策略、智能解析算法等,并提供完整的代码实现和性能优化方案。通过本系统,用户可以实时获取多个动漫平台的更新信息,并通过多种渠道接收通知。关键词:Python爬虫、动漫监控、自动化通知、异步爬虫、反反爬策略。

2201_76125261的博客 901

flutter mapbox_gl 使用的坑

国内关于 mapbox 地图的文档比较少,所以难免会遇到一些问题,在这里简单记录,希望能帮助后来者。

大模型学习路线 523

基于Simulink实现电动汽车电机驱动系统的建模与仿真

通过上述步骤,我们成功实现了基于Simulink的电动汽车电机驱动系统的建模与仿真。该系统能够全面评估电机驱动系统的性能,验证控制策略的有效性,并通过优化设计提高车辆的动力性和效率。引入智能预测:结合人工智能技术,实现更智能的控制策略。扩展功能:增加对多种电机类型的支持,提升系统通用性。实验验证:将仿真模型应用于实际硬件,进行实验验证,评估其在实际工况下的表现。

xiaoheshang_123的博客 316

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Mapbox GL JS 核心表达式:`any` 多条件或判断完全教程

是 Mapbox GL JS 表达式系统中与 互补的核心逻辑表达式,用于实现多条件“或”判断——只要任意一个输入的布尔表达式结果为 , 就返回 ;同时具备短路求值特性(一旦某个条件为 ,立即停止后续条件计算),既灵活满足多场景的宽松筛选需求,又能优化性能。本文将从核心概念、语法、实战场景、进阶优化到常见误区,全面讲解 表达式的使用方法。 表达式实现“逻辑或”(OR)功能,是 Mapbox 宽松筛选、多条件样式控制的核心工具:官方定义的语法简洁且支持任意数量布尔表达式,与 语法结构一致但逻辑不同: 参数

1095

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

发布自己的mapbox矢量地图

一、前言 mapbox 作为一款开源的地图开发平台,优势兼具百度、高德等互联网地图平台和Arcgis、Supermap 等企业级地图平台的特点,是很多企业作为地图项目开发的基础平台,这里根据实际的工作经验,来谈一谈如何发布自己的mapbox矢量地图。并通过mapbox.js调用进行下一步的开发。 二、整体流程 发布mapbox 需要很多第三方的软件平台依赖,下图是我整理的具体发布流程图,...

LUFFY_HAT的专栏 1万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Mapbox相机动画整理(2)API整理

文章目录API 整理Geography 和 geometryLngLatLikePointLikeMercatorCoordinateProperties 和 OptionsAnimationOptionsCameraOptionsMapeaseTo(options, eventData?) API 整理 Geography 和 geometry LngLatLike 经纬度坐标 var v1 = new mapboxgl.LngLat(-122.420679, 37.772537); var v2 = [

hequhecong10857的博客 2252

适合画地图的js库对比整理,Leaflet,Google Maps,Mapbox GL JS,OpenLayers,Cesium,D3.js等对应官方网站、Github项目地址、特点、使用场景及应用

适合画地图的js库对比整理,Leaflet,Google Maps JavaScript API,Mapbox GL JS,OpenLayers,Cesium,D3.js,ECharts,MapLibre,ThreeJS,The WebGL Globe等对应官方网站、Github项目地址、特点、使用场景及应用

搬砖工 3120

Mapbox相机动画整理(3)动作播放整理

文章目录播放整理循环播放多个动作连续播放 播放整理 循环播放 在一定时间内,循环播放 var animationDuration = 80000; var start; function frame(time) { if (!start) start = time; // phase determines how far through the animation we are var phase = (time - start) / animationDuration; // phas

hequhecong10857的博客 641
上一篇: 天地图服务在https协议下请求正常加载显示地图
下一篇: 前端对象数组去重的几种方法
荣默默
博客等级 码龄11年 18粉丝 57原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值