news 2026/7/23 3:59:40

Mapbox中如何对已经加载的线段进行编辑?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Mapbox中如何对已经加载的线段进行编辑?

在 Mapbox 中编辑已加载的线段(LineString)通常需要结合 Mapbox GL JS 和其相关插件来实现。以下是几种常见的编辑方法:

一、使用 Mapbox GL Draw 插件(最常用)

这是 Mapbox 官方推荐的绘图/编辑工具,支持线段的绘制、编辑和删除。

1. 安装和引入

<!-- 引入样式 --> <link href='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v1.2.2/mapbox-gl-draw.css' rel='stylesheet' /> <!-- 引入 JS --> <script src='https://api.mapbox.com/mapbox-gl-js/plugins/mapbox-gl-draw/v1.2.2/mapbox-gl-draw.js'></script>

或使用 npm:

npm install @mapbox/mapbox-gl-draw

2. 初始化并添加线段

import mapboxgl from 'mapbox-gl'; import MapboxDraw from '@mapbox/mapbox-gl-draw'; const map = new mapboxgl.Map({ container: 'map', style: 'mapbox://styles/mapbox/streets-v11', center: [lng, lat], zoom: 12 }); const draw = new MapboxDraw({ displayControlsDefault: false, controls: { line_string: true, // 启用线段绘制 trash: true // 启用删除 } }); map.addControl(draw); // 添加一条已有的线段(例如从GeoJSON) const line = { type: 'Feature', geometry: { type: 'LineString', coordinates: [[lng1, lat1], [lng2, lat2], [lng3, lat3]] }, properties: {} }; draw.add(line);

此时,虽然默认不是编辑样式,但是已经可以进行编辑。

3. 进入编辑模式

用户点击线段后,线段会显示顶点(可拖动调整)

可以通过代码触发编辑:

// 获取线段ID(需先添加线段时保存ID) const features = draw.getAll(); const lineId = features.features[0].id; // 进入编辑模式 draw.changeMode('direct_select', { featureId: lineId });

4. 保存编辑结果

map.on('draw.update', function(e) { const updatedData = draw.getAll(); console.log('更新后的线段数据:', updatedData); });
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/19 7:47:11

【kylin-Linux】Flash兼容插件包安装

[注意]Adobe Flash已在2020年底停止更新安装思路1.更换apt源2.更新软件源3.安装kylin-flash-plugin步骤1.更换软件源编辑sources.list文件&#xff0c;更换为你需要的源地址&#xff0c;网上有很多开源镜像站&#xff0c;具体自己去网络上寻找。sudo vim /etc/apt/sources.list…

作者头像 李华
网站建设 2026/7/13 22:39:27

快过年了 , 我就简简单单写一个总结吧 ! | 马年快乐 !

1. 项目正式上线了 书接上回 , 经过一个月的不懈努力 , 我和另一个哥们终于把这个项目 (帮学校做校园宿舍报修系统小程序) 拿下了. 但是这边宿管长这边又出了点状况: 因为这个项目是为学校做公益,没有问宿管长要一分钱. 但是服务器的钱肯定是要宿管长联系学校那边给报销一下…

作者头像 李华
网站建设 2026/7/20 6:48:02

生命的二元张力:弗洛伊德生的本能与死的本能理论解析

生命的二元张力&#xff1a;弗洛伊德生的本能与死的本能理论解析 在经典精神分析理论体系中&#xff0c;西格蒙德弗洛伊德&#xff08;Sigmund Freud&#xff09;晚年提出的“生的本能”&#xff08;Eros&#xff09;与“死的本能”&#xff08;Thanatos&#xff09;二元理论&…

作者头像 李华
网站建设 2026/7/16 15:24:27

tauri2应用添加系统托盘Tray

官网文档&#xff1a;https://v2.tauri.app/learn/system-tray/ 有两种方式可以添加系统托盘&#xff0c;一种是在js中&#xff0c;一种是在rust中&#xff0c;官方都有使用案例&#xff0c;其中要注意&#xff1a; 要记得在配置文件中添加这个特性。 这里我记录一下在js中添…

作者头像 李华
网站建设 2026/7/13 9:49:24

大模型的数学工厂:揭秘GPU与TPU如何重塑AI计算架构

文章探讨了为什么大语言模型需要专门的硬件而非传统CPU。LLM本质上是数学工厂&#xff0c;执行大规模并行矩阵乘法运算。CPU因设计用于逻辑运算和分支决策而不适合处理这种计算密集型任务。GPU通过大规模并行核心和Tensor Core优化矩阵运算&#xff0c;而Google的TPU采用脉动阵…

作者头像 李华
网站建设 2026/7/18 11:23:23

智能环境测试仪设计

目录智能环境测试仪的设计要点关键技术实现应用场景示例源码文档获取/同行可拿货,招校园代理 &#xff1a;文章底部获取博主联系方式&#xff01;智能环境测试仪的设计要点 硬件设计 采用高精度传感器模块&#xff08;如温湿度传感器、PM2.5传感器、CO₂传感器等&#xff09;&…

作者头像 李华