百度地图BMapGL通过websocket发送的实时点进行打点,并给每个点添加点击事件

本文主要是介绍百度地图BMapGL通过websocket发送的实时点进行打点,并给每个点添加点击事件,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

由于BMapGL没有海量打点的方法、Bmap3.0没有卫星地图,在各种取舍下还是使用了BMapGL进行打点
并且在开发过程中发现百度地图的画线方法Polyline实时的画线是监听不到点击事件的(必须要一条完整的线)所有只能用Marker进行打点


通过websocket实时发送数据

//websocket数据样式 例
data: {
latitude: 36.00
longitude: 116.11
sendTime: 1650006526000
Id: 1
}
type: 2

vue

<template><div class="viewBox"><div class="bm-view" id="container"></div></div>
</template><script>
//Websocket 的封装和网上分享的封装都大差不差就不展示出来了
import { sendWebsocket, closeWebsocket } from "@/utils/websocket.js";
import { reactive,toRefs,onBeforeMount,onMounted} from 'vue'
import { initMap, setPoint,setMarker} from "../utils/BDmap";
import { ElLoading } from "element-plus";
export default {name: 'BDmap',setup() {onMounted(() => {//param是我这边后台需要的idopenWebsocket(param);Loading();//当地图加载完毕后回调结束LoadinginitMap((tilesloaded) => {loadingState.close();});})function Loading() {loadingState = ElLoading.service({lock: true,text: "正在加载地图",background: "rgba(0, 0, 0, 0.7)",});}//Websocket返还的消息function wsMessage(data) {if (data.type === 2) {setMarker([data.data]);}}//给Websocket发送消息function openWebsocket(param) {/**@param  发送参数 @wsMessage 返还的参数的方法@wsError 发生错误的方法**/sendWebsocket(param, wsMessage, wsError);}return {}}};
</script>

BDmap.js

let map
let init = [116.404, 39.925];
let points = [];
let Marker
let opts = {width: 200,height: 80,title: '信息'
};//初始化地图的方法
export function initMap(callback) {map = new BMapGL.Map("container");setPoint(init);map.addControl(new BMapGL.ScaleControl()); // 添加比例尺控件// map.addControl(new BMapGL.OverviewMapControl()); //添加缩略地图控件map.enableScrollWheelZoom(true);map.setMapType(BMAP_EARTH_MAP);map.addEventListener("tilesloaded", function () {callback('tilesloaded')});
}//重新定向地图 在项目中有些功能会重复使用
export function setPoint(point) {map.centerAndZoom(new BMapGL.Point(point[0], point[1]), 16);
}//删除点
function removeMaker() {let allOverlay = map.getOverlays();map.removeOverlay(allOverlay[0]);
}//进行打点
export function setMarker(mapData) {
//设置一个值超过这个值进行动态删除,以免无限扩大let allOverlay = map.getOverlays();if (allOverlay.length >= 400) {removeMaker()}// let myIcon = new BMapGL.Icon("/jsdemo/img/car.png", new BMapGL.Size(52, 26));let point = new BMapGL.Point(mapData.longitude, mapData.latitude);Marker = new BMapGL.Marker(point);Marker.id= mapData.id;Marker.sendTime = mapData.sendTime;//设置监听事件Marker.addEventListener('click', function (e) {let infoWindow = new BMapGL.InfoWindow(`<p>id:${e.currentTarget.id}</p><p>发送时间:${parseTime(e.currentTarget.sendTime)}</p>`, opts);map.openInfoWindow(infoWindow, point); // 开启信息窗口});map.addOverlay(Marker);
}

//例
在这里插入图片描述


以上

这篇关于百度地图BMapGL通过websocket发送的实时点进行打点,并给每个点添加点击事件的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/375144

相关文章

Python在二进制文件中进行数据搜索的实战指南

《Python在二进制文件中进行数据搜索的实战指南》在二进制文件中搜索特定数据是编程中常见的任务,尤其在日志分析、程序调试和二进制数据处理中尤为重要,下面我们就来看看如何使用Python实现这一功能吧... 目录简介1. 二进制文件搜索概述2. python二进制模式文件读取(rb)2.1 二进制模式与文本

SQL Server 中的表进行行转列场景示例

《SQLServer中的表进行行转列场景示例》本文详细介绍了SQLServer行转列(Pivot)的三种常用写法,包括固定列名、条件聚合和动态列名,文章还提供了实际示例、动态列数处理、性能优化建议... 目录一、常见场景示例二、写法 1:PIVOT(固定列名)三、写法 2:条件聚合(CASE WHEN)四、

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

JAVA SpringBoot集成Jasypt进行加密、解密的详细过程

《JAVASpringBoot集成Jasypt进行加密、解密的详细过程》文章详细介绍了如何在SpringBoot项目中集成Jasypt进行加密和解密,包括Jasypt简介、如何添加依赖、配置加密密钥... 目录Java (SpringBoot) 集成 Jasypt 进行加密、解密 - 详细教程一、Jasyp

linux实现对.jar文件的配置文件进行修改

《linux实现对.jar文件的配置文件进行修改》文章讲述了如何使用Linux系统修改.jar文件的配置文件,包括进入文件夹、编辑文件、保存并退出编辑器,以及重新启动项目... 目录linux对.jar文件的配置文件进行修改第一步第二步 第三步第四步总结linux对.jar文件的配置文件进行修改第一步进

Go语言中如何进行数据库查询操作

《Go语言中如何进行数据库查询操作》在Go语言中,与数据库交互通常通过使用数据库驱动来实现,Go语言支持多种数据库,如MySQL、PostgreSQL、SQLite等,每种数据库都有其对应的官方或第三... 查询函数QueryRow和Query详细对比特性QueryRowQuery返回值数量1个:*sql

Java发送SNMP至交换机获取交换机状态实现方式

《Java发送SNMP至交换机获取交换机状态实现方式》文章介绍使用SNMP4J库(2.7.0)通过RCF1213-MIB协议获取交换机单/多路状态,需开启SNMP支持,重点对比SNMPv1、v2c、v... 目录交换机协议SNMP库获取交换机单路状态获取交换机多路状态总结交换机协议这里使用的交换机协议为常

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

Python进行word模板内容替换的实现示例

《Python进行word模板内容替换的实现示例》本文介绍了使用Python自动化处理Word模板文档的常用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友... 目录技术背景与需求场景核心工具库介绍1.获取你的word模板内容2.正常文本内容的替换3.表格内容的

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必