066:mapboxGL的marker的drag,dragstart,dragend三种触发事件示例

该博客由大剑师兰特撰写,分享了在Vue + MapboxGL中处理marker拖拽事件的示例,包括drag、dragstart和dragend三种触发事件的详细处理方法。提供了示例源代码和配置说明,读者可通过复制代码快速实现marker拖拽效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作者: 还是大剑师兰特 ,曾为美国某知名大学计算机专业研究生,现为国内GIS领域高级前端工程师,优快云知名博主,深耕openlayers、leaflet、mapbox、cesium,canvas,echarts等技术开发,欢迎加微信(gis-dajianshi),一起交流。

查看本专栏目录 - 本文是第 066个示例

一、示例效果图

二、示例简介

本示例演示如何在vue+mapbox中处理marker的三种触发事件drag,dragstart,dragend。 marker通过on(‘XXX’, callback),的方式进行触发处理。

直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果

三、配置说明

1)查看基础设置:https://xiaozhuanlan

### @dragend 的功能及使用方法 `@dragend` 是一种常见的事件监听器名称,在不同的框架和场景下可能具有不同含义。以下是基于 Vue 和 Mapbox 场景下的 `@dragend` 功能及其使用方式。 #### 1. **Vue 中的 @dragend** 在 Vue 生态系统中,特别是结合第三方组件库(如 Element UI 或其他表格插件),`@dragend` 常用于检测拖拽操作结束时的行为。例如: - 在引用[2]中的 `<el-table>` 组件中,`@header-dragend` 被用来捕获表头被拖动调整列宽的操作完成时刻[^2]。 这种情况下,`@dragend` 类似于一个自定义事件处理器,当某个特定的拖拽动作完成后会触发回调函数。其基本语法如下: ```html <element @dragend="handleDragEnd"></element> ``` 其中 `handleDragEnd` 是用户定义的一个 JavaScript 方法,负责处理拖拽结束后逻辑。 #### 2. **Mapbox 中的 dragend** 对于地图开发工具 Mapbox 来说,`dragend` 则专门针对地图标记 (Marker) 或者视图本身的移动行为。具体而言,它会在以下情况发生作用: - 当用户停止拖拽 Marker触发事件; - 可以通过绑定 `on('dragend', callback)` 方式来响应该事件并执行相应业务逻辑[^1]。 下面是一个简单的例子展示如何利用 mapbox-gl-js 实现 marker 的拖拽以及相应的事件捕捉机制: ```javascript // 创建一个新的 marker 并将其添加至地图上指定位置 const marker = new mapboxgl.Marker() .setLngLat([longitude, latitude]) .addTo(map); // 添加 'drag' 事件监听器 marker.on('drag', () => { console.log('正在拖拽...'); }); // 添加 'dragstart' 事件监听器 marker.on('dragstart', () => { console.log('开始拖拽'); }); // 添加 'dragend' 事件监听器 marker.on('dragend', () => { const position = marker.getLngLat(); console.log(`拖拽结束,当前位置为 ${position.lng}, ${position.lat}`); }); ``` 上述代码片段展示了完整的 marker 拖拽生命周期管理——从启动 (`dragstart`)、持续过程中 (`drag`) 直到最后释放鼠标按钮时 (`dragend`) 所需采取的动作序列。 --- ### 总结 无论是应用于前端框架还是地理信息系统领域,“dragend” 都扮演着至关重要的角色 —— 它允许开发者精确控制交互流程,并依据最终状态做出进一步决策。理解这些基础概念有助于构建更加互动友好的用户体验界面。
评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还是大剑师兰特

打赏一杯可口可乐

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值