mapbox弹框使用vue组件、mapbox弹框添加自定义事件

mapbox-gl 通过websocket 展示实时GPS轨迹数据 1.后端基于nodejs,通过http模块定期向后端接口请求数据,组装成geojson。通过websocket向客户端定期连续发送数据。 2.前端通过mapbox-gl.js 阅读详情

一、popup内容使用vue2组件,添加轮播图

1、新建Popup.vue文件,添加弹框内容

<template>
  <div>
    <div class="pop_tit" @click="openD(obj)">
      {{ obj.name }}<i class="iconfont icon-jiancedianweidanchuang-you"></i>
    </div>
    <!-- 轮播图 -->
    <el-carousel height="240px" :interval="4000" trigger="click">
      <el-carousel-item v-for="item in obj.Vimages" :key="item">
        <img :src="item" class="vima" />
      </el-carousel-item>
    </el-carousel>
  </div>
</template>
<script>
import Bus from "../../utils/bus";
export default {
  name: "Popup",
  props: ["obj"],
  methods: {
    openD(geom) {
      Bus.$emit("detailVUE", geom);
    },
  },
};
</script>

2、地图页面map.vue

第一引入上面弹框组件,同时引入vue实例

import Bus from "../../utils/bus";
import Popup from "./Popup"; //引入弹框组件
import Vue from "vue";

第二挂载弹框内容

propsData里面是要传递到弹框的参数

methos:{
 createVideoPopUp(currentFeature) {
      var that = this;
      that.videoObj = currentFeature;//传递到弹框页面的数据
      var Vimages = [
        "http://****:8080/static/images/map/waterNew/img_shili1.png",
        "http://****:8080/static/images/map/waterNew/img_shili2.png",
        "http://****:8080/static/images/map/waterNew/img_shili3.png",
      ];//轮播图的图片
      that.videoObj.Vimages = Vimages;
      const p = Vue.extend(Popup);
      let vm = new p({
        propsData: {
          obj: that.videoObj,
          isShowName: true,
        },//传参
      });
      vm.$mount();//挂载
      this.popupTemp = vm.$el;
    }
 }

第三mapbox创建弹框

注意这里需要使用setDOMContent来设置弹框内容

//点击地图上面的标记点位,弹出弹框
 this.map.on("click", "QTstation", function (e) {
	 var that = this
	 var coordinates = e.features[0].geometry.coordinates.slice();
	 this.map.on("click", "QTstation", function (e) {
		that.createPopUp(e.features[0].properties);//第二步中的创建内容的方法
		new mapboxgl.Popup({ closeButton: false })
		    .setLngLat(coordinates)
		    .setDOMContent(that.popupTemp)
		    .addTo(that.map);
	})
})

3、mapbox弹出窗口中的Click事件

通过Bus 进行通信,上述代码中有体现(openD方法)

最终实现效果图:
在这里插入图片描述

Mapbox 实现复杂功能:加载地图、标记点筛选、hover标记点时添加动效、区域边界线、提示弹窗 效果图: 功能拆分: (1)显示地图 (2)加载地图标记点、点击该标记点出现该标记点的详情弹窗、筛选标记点 (3)加载区域范围边界线、hover该区域时出现边界线、点击该区域出现该区域提示信息 (4)如果标记点和区域范围上的点击事件重合: 解决方案:mapbox两个图层叠加,点击重合部分都触发事件解决方案 实现步骤: (2)加载地图标记点、点击该标记点出现该标记点的详情弹窗、筛选标记点 ① ② ③ ④ ⑤ ① 加载地图标记点: 使用添加图层方式;区别于上一篇Mapbox 添加标记点(一)使用 阅读详情

相关推荐

Mapbox中点图层和面图层点击事件重叠,禁止点击穿透方案

然后mapbox会为我们返回一个数组,这个数组里对应的是我们每个图层查出来的元素,比如上面的写法,我们得到的features就是数组,里面有两项第一个是点要素,第二个是面要素,然后我们就可以针对不同的结果做不同的操作,这里我采用的是状态标记法,当获取到点要素之后证明用户点击了点位,那么这个时候我把state状态改掉,然后执行面要素的操作时首先判断这个state,如果他的值是true就证明点图层被点击过,那这个时候就不能执行面图层的任何操作。这表示当我点击到点位的时候。我想阻止鼠标事件下穿。

lz5211314121的博客 1412

Mapbox 移除弹窗、监听弹窗打开、关闭事件、去除Mapbox的logo

mapbox 一些特殊用法

不同场景下的水平居中 7896

vue+mapbox添加自定义图片图层、选中效果、显示popup、增加marker、图层过滤等

例如:平时需要在地图上显示一些设备的分布及状态。

_小郑有点困了的博客 1581

Mapbox 添加弹窗 点击标记点出现弹窗 vue

方法一:字符串拼接弹框内容:(弹框内容样式少的情况下) 效果图: 核心代码: var popup = new mapboxgl.Popup({ offset: 25 }).setHTML(`<div class="makerTop"><h2 class="markerHear" > 综合办一处 </h2></div>' '<div class="markerBody" ><p>设

不同场景下的水平居中 5729

014:Mapbox GL添加draw组件,绘制点、线、多边形、删除

第014个本示例的目的是介绍演示如何在vue+mapbox中添加draw组件,绘制点、线、多边形,删除所选元素。

大剑师兰特的GIS世界 2286

mapbox V3 新特性,添加下雪效果

本文详细介绍如何基于mapbox-gl v3.*.*、vue 3.*.* 版本中添加下雪效果,亲测可用。希望能帮助到您。一起学习,加油!加油!

我哎GIS博客 894

如何使用mapbox实现楼层分层,即所谓的单体化;以及如何在vue3中使用mapbox

我们在做webgis开发的过程中,应该经常会去加载一些类似白膜的数据,但是呢,如何实现对楼房分分层这个问题不知道大家有没有思考过,在cesium中是可以实现这个操作的,但是过程十分复杂繁琐;代码直接给大家,逻辑很清晰,看一下就知道了,如果不了解为什么这样写,可以去我的mapbox专辑中去看,我会进行讲解。找到项目中的index.html文件,将mapbox的CDN引入,就一个css文件和一个js文件,大家也可以去下载下来,放在src下面。二、引入mapbox,这里我是利用CDN的形式引入的。

qq_45751819的博客 1863

Mapbox GL在Vue项目中的应用(综合demo)

MapboxGL是一个强大的JavaScript库,用于创建交互式和可自定义的地图。它基于WebGL构建,能够在浏览器中高效地渲染矢量地图。地图样式:Mapbox GL支持自定义地图样式,允许您设计和定制地图的外观。您可以定义地图的图层、样式、颜色和标签,以创建独特的视觉效果。交互性:使用Mapbox GL,您可以轻松地为地图添加交互性。您可以添加标记、弹出窗口、工具提示和交互式控件,使用户可以与地图及其要素进行交互。

tigerhhzz的博客 2659

mapbox添加自定义图片绑定点击事件,弹窗为自定义组件

二、如果需要设置自定义图片作为点位,则要调用loadImage方法加载图片。三、在App.vue中设置取消mapbox默认的弹窗样式。四、弹窗组件通过props接收传过来的属性的值。

qq_48795482的博客 885

【浙大翁恺】C语言习题

/* 02-0. 整数四则运算(10) 本题要求编写程序,计算2个正整数的和、差、积、商并输出。 题目保证输入和输出全部整型范围内。 输入格式: 输入在一行中给出2个正整数A和B。 输出格式: 在4行中按照格式“A 运算符 B = 结果”顺序输出和、差、积、商。 输入样例: 3 2 输出样例: 3 + 2 = 5 3 - 2 = 1 3 * 2 = 6 3 / 2 =.

qq_43600867的博客 5855

n8n 快速入门1:构建一个简单的工作流

n8n 快速入门指南

engchina的专栏 1万+

Vue中使用mapboxgl添加地图弹框所遇到的问题

在mapbox中当我点击某个列表,需要获取到当前列表项的经纬度,然后在地图中显示这个注记,点击注记的时候,获取到这个注记的属性,在弹框中显示,大家就会想到mapboxgl.Popup来实现,但是想要在mapbox中添加弹框需要动态创建元素,给元素添加属性,动态创建的元素在Vue中会导致事件的丢失,不能直接使用 Vue提供的 @click等等,下面有一个好的方式会变得特别简单。 import recordDialog from './recordDialog.vue' //导入这个组件框 ...

xzg199153的博客 1999

智能问数系统的完整技术栈与实现逻辑

提取并增强数据库 Schema(含业务语义)选择 LLM(开源 qwen2 / 商业 GPT-4o)构建 RAG 向量库(存储历史问法)实现 SQL 安全校验与权限控制添加结果自然语言解释 + 可视化部署到只读数据库环境🔑核心原则“先保证安全,再追求智能”—— 一个能生成错误 SQL 的智能问数系统,比没有更危险。

我们的征途是星辰大海 1619

Vue项目中使用Mapbox完成GIS可视化

1.项目准备 首先准备好Vue项目,然后安装mapbox依赖: npm install --save mapbox-gl 项目结构: 首先需要引用mapbox的css样式,虽然在index.html里面直接引用cdn也有效果,但是不建议直接修改index.html,后面会出现很多路径问题 推荐的方法是:首先将css样式下载到本地,然后再需要使用mapbox的组件里import样式: @import "assets/css/mapboxgl.css"; @import "assets/css/mapbox

Tron_future的博客 1万+

游戏数据训练世界模型:AI物理规律学习与仿真应用实践

世界模型作为理解现实世界动态的AI工具,通过多模态数据学习物理和空间属性来预测未来状态。其核心原理在于从环境交互中提取物理规律,技术价值体现在能够安全、低成本地训练AI系统应对复杂场景。在应用层面,游戏数据因其结构化环境和内置物理引擎,成为世界模型训练的优质素材。游戏世界中的物体交互、运动轨迹等数据天然包含现实物理规律,特别适合训练物理AI。本文以General Intuition公司获得3.2亿美元融资为切入点,深入探讨游戏数据在世界模型训练中的技术实现路径,涵盖数据提取管道构建、多模态数据融合方法,以及

weixin_29056865的博客 367

Blender地形建模实战:5步搞定Gazebo仿真地形(附避坑指南)

本文提供了一份详细的Blender地形建模实战指南,旨在帮助开发者快速创建Gazebo仿真地形。文章通过五个核心步骤,从环境准备、地形雕刻、模型优化导出,到创建Gazebo模型包及问题排错,系统讲解了如何将Blender中的地形模型成功导入Gazebo进行机器人仿真,并重点分享了关键的避坑经验。

weixin_28475533的博客 344

vue中自定义mapbox的弹窗

mapbox官网示例中给出的弹窗内容使用的是setHTML事件,可以在事件内写入html代码,但由于项目需求,需要在vue cli中使用弹窗触发事件,这就导致setHTML里面编写的原生事件无法点击使用,所以我们使用新的一个事件setDOMContent,将弹窗内容设置为dom节点,同时也可以使用弹窗的点击事件 1.封装弹窗的内容为一个组件,包括内容,样式,组件需要的数据以及点击的事件,组件名称就叫pop <template> <div> <div>

weixin_43575792的博客 1661

YOLOv11 改进策略 | HWD:引入 Haar 小波变换,减少信息丢失

在卷积神经网络(CNN)中,下采样(Downsampling)是降低特征图分辨率、扩大感受野的关键操作,通常通过最大池化(MaxPool)或步长为 2 的卷积(Strided Convolution)实现。然而,这些方法在降低分辨率的同时,往往会丢失图像中的高频细节信息(如边缘、纹理)和精确的空间位置信息,这可能对后续特征提取和目标检测精度产生不利影响,尤其是对于小目标和需要精细定位的任务。

走向CTO的路上... 1789

Vue中mapbox的使用

Vue中mapbox的使用 1:首先下载包文件 cnpm i mapbox-gl -S 2:导入包文件(main.js中导入) import mapBoxGl from 'mapbox-gl' Vue.prototype.$mapboxgl = mapBoxGl 3:new一个地图出来 <!-- mapbox --> <template> <div id="map"> <div> <el-radio-group v-model="curr

weixin_44766633的博客 1820

剑灵解包器修改xml.dat文件修改乳量方法

本篇内容是基于单机版网游改单机版游戏剑灵的内容,主要针对关于单机版进行数据修改,当然了对于网端有关于剑灵已有很多,像小助手等多种可以更改,但是存在有封号危险,好,下面我们是在单机版中来进行乳量的修改教程。

灵魂学者的博客 3294

dex2oat编译优化调试

dex2oat编译调试的一些技巧和方法

jidapenglin28的专栏 5045

vue3+mapbox初始化地图及添加按钮

vue3中mapbox初始化地图,及添加绘制、全屏、切换底图、缩放等按钮。

SWK_123的博客 1895

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Vue+Mapbox】Vue中mapbox地图的使用(三)——mapbox对象在组件中共享

在mapbox中使用mapbox遇到一个问题,在使用mapbox对象时,一般的方法都是将生成函数存放在methods中,然后在mounted挂载。但是,如果我们还需要进行其他的操作,比如增加图层、改变数据之类的操作,我们无法获取生成函数中的map对象。......

yuelizhe4774的博客 1631

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

vue中展示mapbox地图

1,vue中安装mapbox cnpm i mapbox-gl -S 2,main.js中引入 import mapBoxGl from 'mapbox-gl' Vue.prototype.$mapboxgl = mapBoxGl 3.展示地图 <!-- mapbox --> <template> <div id="map"></div...

7349

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

PrimeVue与Mapbox:地图组件集成指南

在现代Web应用开发中,地图交互已成为许多业务场景的核心需求。PrimeVue作为下一代Vue UI组件库,提供了丰富的UI组件,而Mapbox则是一个强大的地图平台。本文将详细介绍如何将PrimeVue组件与Mapbox地图服务无缝集成,构建功能丰富的地图应用。通过本文,你将学习到从环境搭建到高级功能实现的完整流程,掌握解决地图交互中的常见痛点的方法。 ## 技术栈概述 ### PrimeV...

gitblog_00724的博客 1049

探索Vue与Mapbox的美妙融合:Vue-Mapbox

探索Vue与Mapbox的美妙融合:Vue-Mapbox 是一个优秀的开源项目,它将流行的前端框架Vue.js和强大的地图服务Mapbox相结合,为Web开发者提供了一套便捷地在Vue应用中集成交互式地图的工具。 项目简介 Vue-Mapbox是由社区开发者Soal开发的,旨在简化Vue应用程序中的地图集成。通过这个库,你可以利用Mapbox丰富的地图定制能力和Vue的响应式特性,轻松创建动态、高...

gitblog_00089的博客 656
上一篇: mapbox地图点位图像更新
下一篇: mapbox打开一个弹框后关闭另外一个弹框
兴芳
博客等级 码龄8年 33粉丝 31原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值