news 2026/10/1 23:50:49

MapBox从入门到精通

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MapBox从入门到精通

Mapbox GL JS 是 Mapbox 核心的前端地图开发库,支持添加点、线、面、圆、符号、文本等各类矢量图形,主要通过数据源(Source) + 图层(Layer) 的模式实现。以下是详细的添加方法和示例,涵盖常用图形类型:

一、基础准备:初始化地图

首先确保引入 Mapbox GL JS 并初始化地图(需提前申请 Mapbox Access Token):

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Mapbox 添加各类图形</title> <!-- 引入 Mapbox GL JS 核心库和样式 --> <link href="https://api.mapbox.com/mapbox-gl-js/v3.4.0/mapbox-gl.css" rel="stylesheet"> <script src="https://api.mapbox.com/mapbox-gl-js/v3.4.0/mapbox-gl.js"></script> <style> body { margin: 0; padding: 0; } #map { width: 100vw; height: 100vh; } </style> </head> <body> <div id="map"></div> <script> // 初始化地图 mapboxgl.accessToken = '你的Mapbox Access Token'; // 替换为自己的Token const map = new mapboxgl.Map({ container: 'map', // 容器ID style: 'mapbox://styles/mapbox/streets-v12', // 基础地图样式 center: [116.4074, 39.9042], // 初始中心点(北京) zoom: 12 // 初始缩放级别 }); // 地图加载完成后执行添加图形的逻辑 map.on('load', () => { // 所有图形添加逻辑写在这里 }); </script> </body> </html>

二、核心概念:Source + Layer

Mapbox 中所有图形都需要先定义数据源(Source)(存储地理数据),再通过图层(Layer)(定义渲染样式)展示。

Source 类型:常用 geojson(兼容 GeoJSON 格式,支持点、线、面)、image(图片)、video(视频)等;

Layer 类型:根据图形类型选择,如 circle(圆)、line(线)、fill(面)、symbol(符号 / 文本)等。

三、各类图形添加示例

以下示例均写在 map.on('load', () => { ... }) 内部。

1. 点图形(Circle 图层:圆形点)

适合展示坐标点(如 POI、传感器位置),可自定义半径、颜色、透明度:

// 1. 添加 GeoJSON 数据源(单个点) map.addSource('point-source', { type: 'geojson', data: { type: 'Feature', geometry: { type: 'Point', coordinates: [116.4074, 39.9042] // [经度, 纬度] }, properties: { name: '天安门' } // 自定义属性(可选) } }); // 2. 添加 Circle 图层渲染点 map.addLayer({ id: 'point-layer', // 图层唯一ID type: 'circle', // 图层类型:圆形 source: 'point-source', // 关联数据源 paint: { 'circle-radius': 10, // 圆半径(像素) 'circle-color': '#FF5733', // 填充色 'circle-opacity': 0.8, // 透明度 'circle-stroke-width': 2, // 描边宽度 'circle-stroke-color': '#FFFFFF' // 描边色 } });

2. 线图形(Line 图层:折线 / 曲线)

适合展示道路、轨迹、边界线等:

// 1. 添加线数据源 map.addSource('line-source', { type: 'geojson', data: { type: 'Feature', geometry: { type: 'LineString', coordinates: [ [116.35, 39.9], // 起点 [116.4, 39.92], // 中点 [116.45, 39.9] // 终点 ] } } }); // 2. 添加 Line 图层渲染线 map.addLayer({ id: 'line-layer', type: 'line', source: 'line-source', paint: { 'line-width': 4, // 线宽度 'line-color': '#3498DB', // 线颜色 'line-dasharray': [2, 2], // 虚线(可选,[实线长度, 空白长度]) 'line-opacity': 0.9 // 透明度 } });

3. 面图形(Fill 图层:多边形 / 区域)

适合展示行政区、湖泊、建筑区域等:

// 1. 添加面数据源(多边形,闭合坐标) map.addSource('fill-source', { type: 'geojson', data: { type: 'Feature', geometry: { type: 'Polygon', coordinates: [ [ [116.38, 39.89], // 顶点1 [116.42, 39.89], // 顶点2 [116.42, 39.92], // 顶点3 [116.38, 39.92], // 顶点4 [116.38, 39.89] // 闭合点(与顶点1一致) ] ] } } }); // 2. 添加 Fill 图层渲染面 map.addLayer({ id: 'fill-layer', type: 'fill', source: 'fill-source', paint: { 'fill-color': '#2ECC71', // 填充色 'fill-opacity': 0.5, // 填充透明度 'fill-outline-color': '#27AE60' // 面轮廓线颜色 } });
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/1 12:10:12

PySide6 的 QSettings简单应用学习笔记

QSettings 是 PySide6 中用于持久化存储设定的类&#xff0c;会自动将应用的配置数据保存到系统对应位置&#xff08;Windows 注册表、macOS/iOS 的 plist 文件、Linux 的配置文件&#xff09;&#xff0c;无需手动管理文件路径。QSettings 的核心价值是 “跨平台 简化持久化存…

作者头像 李华
网站建设 2026/10/2 1:34:46

使用LangChain编排Seed-Coder-8B-Base实现自动化脚本生成

使用LangChain编排Seed-Coder-8B-Base实现自动化脚本生成 在今天的开发实践中&#xff0c;一个常见的场景是&#xff1a;运维工程师需要快速写一个脚本合并多个CSV文件并导出为Excel——这本不该耗费太多精力&#xff0c;但手动编写、调试、验证的过程依然琐碎且易错。如果能用…

作者头像 李华
网站建设 2026/10/1 23:30:00

谷歌学术镜像网站资源助力gpt-oss-20b研究论文查阅

gpt-oss-20b 与学术镜像&#xff1a;开源大模型研究的双轮驱动 在生成式AI迅猛发展的今天&#xff0c;大型语言模型已成为科研、教育和产品开发的核心工具。然而&#xff0c;GPT-4等主流闭源模型虽然能力强大&#xff0c;却因其高昂的推理成本、封闭的权重体系以及对云端服务的…

作者头像 李华
网站建设 2026/10/1 19:54:00

抖音直播内容高效保存指南:告别错过精彩瞬间的烦恼

抖音直播内容高效保存指南&#xff1a;告别错过精彩瞬间的烦恼 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 还在为错过精彩的抖音直播而懊恼吗&#xff1f;看着心仪主播的直播内容在结束后消失无踪&#…

作者头像 李华
网站建设 2026/10/1 23:51:43

泉盛UV-K5/K6对讲机LOSEHU固件:5大升级功能与终极配置方案

还在为对讲机原厂固件的功能限制而苦恼吗&#xff1f;泉盛UV-K5/K6对讲机LOSEHU固件为业余无线电爱好者提供了全新的解决方案&#xff0c;通过深度优化硬件性能和扩展专业功能&#xff0c;让普通对讲机变身专业通信设备。这款固件不仅解决了原版固件的诸多痛点&#xff0c;更为…

作者头像 李华
网站建设 2026/10/2 0:57:44

跨平台应用性能深度剖析:Electron 与开源鸿蒙(OpenHarmony)在真实业务场景下的资源调度、启动效率与能效表现对比

跨平台应用性能深度剖析&#xff1a;Electron 与开源鸿蒙&#xff08;OpenHarmony&#xff09;在真实业务场景下的资源调度、启动效率与能效表现对比 引言&#xff1a;当“跨平台”不再只是口号&#xff0c;性能成为落地的试金石 在信创工程全面铺开的 2025 年&#xff0c;“跨…

作者头像 李华