当前位置: 首页 > news >正文

高端百度地图开发2:自定义水滴头像(鼠标事件、API封装对接)

高端百度地图开发系列

  • 高端百度地图开发1:自定义水滴头像(自定义标注覆盖物、Overlay覆盖类)

自定义水滴头像之鼠标事件、API封装对接

  • 高端百度地图开发系列
  • 一、添加自定义覆盖物的方法
  • 二、对接API数据
    • 1.获取API数据(模拟)
    • 2.遍历数据
    • 3.添加自定义覆盖物封装函数
    • 4.添加监听事件
  • 三、覆盖物类
    • 1.Overlay
    • 2.MapPanes
  • 四、鼠标操作单击事件

在这里插入图片描述

一、添加自定义覆盖物的方法

var headerImg1 = new LockAvatarLay(new BMap.Point(116.407845, 39.914101), 'images/header_bg1.png', {});map.addOverlay(headerImg1);var headerImg2 = new LockAvatarLay(new BMap.Point(116.457592, 39.907851), 'images/header_bg2.png', {});map.addOverlay(headerImg2);var headerImg2 = new LockAvatarLay(new BMap.Point(116.416486, 39.887259), 'images/header_bg3.png', {});map.addOverlay(headerImg2);

二、对接API数据

1.获取API数据(模拟)

 var dataArr =[{"poi_lng": 116.407845, "poi_lat": 39.914101, "avatar": "images/header_bg1.png", "id": 1},{"poi_lng": 116.457592, "poi_lat": 39.907851, "avatar": "images/header_bg2.png", "id": 2},{"poi_lng": 116.416486, "poi_lat": 39.887259, "avatar": "images/header_bg3.png", "id": 3},{"poi_lng": 116.328955, "poi_lat": 39.900545, "avatar": "images/header_bg4.png", "id": 4}];

2.遍历数据

  //遍历数据;function getMarker(markerArr) {for (var i = 0; i < markerArr.length; i++) {var p0 = markerArr[i].poi_lng;var p1 = markerArr[i].poi_lat;var id = markerArr[i].id;var avatar = markerArr[i].avatar;var point = new window.BMap.Point(p0, p1)addMarker(point, avatar, id);}}

3.添加自定义覆盖物封装函数

    //添加自定义覆盖物;function addMarker(point, avatar) {var headerImg = new LockAvatarLay(point, avatar, {});map.addOverlay(headerImg);}

4.添加监听事件

 //添加监听事件LockAvatarLay.prototype.addEventListener = function (event, fun) {this._div['on' + event] = fun;}

三、覆盖物类

1.Overlay

覆盖物的抽象基类,所有覆盖物均继承基类的方法。此类不可实例化。

方法返回值描述
initialize(map: Map)HTMLElement抽象方法,用于初始化覆盖物,当调用map.addOverlay时,API将调用此方法。自定义覆盖物时需要实现此方法。自定义覆盖物时需要将覆盖物对应的HTML元素返回
isVisible()Boolean判断覆盖物是否可见
draw()none抽象方法,当地图状态发生变化时,由系统调用对覆盖物进行绘制。自定义覆盖物需要实现此方法
show()none显示覆盖物。对于自定义覆盖物,此方法会自动将initialize方法返回的HTML元素样式的display属性设置为空
hide()none隐藏覆盖物。对于自定义覆盖物,此方法会自动将initialize方法返回的HTML元素样式的display属性设置为none

2.MapPanes

此类表示地图上所有覆盖物的容器集合,没有构造函数,通过对象字面量形式表示。通过Map的getPanes方法可获得该对象实例。

属性类型描述
floatPaneHTMLElement信息窗口所在的容器
markerMouseTargetHTMLElement标注点击区域所在的容器
floatShadowHTMLElement信息窗口阴影所在的容器
labelPaneHTMLElement文本标注所在的容器
markerPaneHTMLElement标注图标所在的容器
markerShadowHTMLElement标注阴影所在的容器
mapPaneHTMLElement折线、多边形等矢量图形所在的容器

四、鼠标操作单击事件

将数据通过封装函数进行传递,获取对应头像的ID,然后进行弹窗或信息展示;

    //自定义覆盖物和事件调用;function addMarker(point, avatar, id) {var headerImg = new LockAvatarLay(point, avatar, {});map.addOverlay(headerImg);//为自定义覆盖物添加点击事件headerImg.addEventListener('click', function () {console.log(id);});}

@漏刻有时

相关文章:

高端百度地图开发2:自定义水滴头像(鼠标事件、API封装对接)

高端百度地图开发系列 高端百度地图开发1&#xff1a;自定义水滴头像&#xff08;自定义标注覆盖物、Overlay覆盖类&#xff09; 自定义水滴头像之鼠标事件、API封装对接 高端百度地图开发系列一、添加自定义覆盖物的方法二、对接API数据1.获取API数据(模拟)2.遍历数据3.添加自…...

R语言生存分析(机器学习)(2)——Enet(弹性网络)

弹性网络&#xff08;Elastic Net&#xff09;:是一种用于回归分析的统计方法&#xff0c;它是岭回归&#xff08;Ridge Regression&#xff09;和lasso回归&#xff08;Lasso Regression&#xff09;的结合&#xff0c;旨在克服它们各自的一些限制。弹性网络能够同时考虑L1正则…...

【Docker】使用 Docker Registry 搭建自己的 Docker 镜像仓库

使用 Docker Registry 搭建自己的 Docker 镜像仓库 在使用 Docker 进行应用程序的开发和部署时&#xff0c;使用 Docker 镜像仓库是一个很好的实践。它允许集中存储和管理 Docker 镜像&#xff0c;方便团队协作和版本控制。在本文中&#xff0c;将介绍如何使用 Docker Registr…...

Spring 是什么框架?

Spring 是 Java EE 编程领域的一款轻量级的开源框架&#xff0c;由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立&#xff0c;它的目标就是要简化 Java 企业级应用程序的开发难度和周期。 Spring 自诞生以来备受青睐&#xff0c;一直被广大开发人员作为 Java 企业…...

Azure添加网络接口

添加网络接口的意义 在 Azure 上&#xff0c;为虚拟机添加网络接口的意义包括以下几个方面&#xff1a; 扩展网络带宽&#xff1a;通过添加多个网络接口&#xff0c;可以增加虚拟机的网络带宽&#xff0c;提高网络传输速度和数据吞吐量。实现网络隔离&#xff1a;每个网络接口…...

Linux 内核第一版 (v0.01) 开源代码解读

探索Linux v0.01的内部结构&#xff0c;Linux内核经常被认为是一个庞大的开源软件。在撰写本文时&#xff0c;最新版本是v6.5-rc5&#xff0c;包含36M行代码。不用说&#xff0c;Linux是几十年来许多贡献者辛勤工作的成果。 Linux 内核首个开源版本 (v0.01) 的体积非常小&…...

tp6 v3微信退款

/*** Notes:退款* param $out_trade_no 支付时候订单号&#xff08;order表 original_bn&#xff09;两个参数选一个这个要选对* param $out_refund_no 退款订单号* param $total 订单金额* param $refund 退款金额* Time: 2023-08-10*/public function refundMoney($out_trade…...

使用 AndroidX 增强 WebView 的能力

在App开发过程中&#xff0c;为了在多个平台上保持一致的用户体验和提高开发效率&#xff0c;许多应用程序选择使用 H5 技术。在 Android 平台上&#xff0c;通常使用 WebView 组件来承载 H5 内容以供展示。 一.WebView 存在的问题 自 Android Lollipop 起&#xff0c;WebVie…...

Maven基础之仓库、命令、插件机制

文章目录 Maven 仓库中央仓库和本地仓库中央仓库本地仓库 Maven 命令generate 命令compile 命令clean 命令test 命令package 命令install 命令 Maven 插件机制官方插件&#xff1a;Compile 插件Tomcat 7 插件 Maven 仓库 中央仓库和本地仓库 [✎] 简单一点说 中央仓库是一个网…...

【ArcGIS】经纬度数据转化成平面坐标数据

将点位置导入Gis中&#xff0c;如下&#xff08;经纬度表征位置&#xff09;&#xff1a; 如何利用Gis将其转化为平面坐标呢&#xff1f; Step1 坐标变换 坐标变换&#xff0c;打开ArcToolbox&#xff0c;找到“数据管理工具”->“投影和变换”->“要素”->“投影”…...

使用自己的数据利用pytorch搭建全连接神经网络进行回归预测

使用自己的数据利用pytorch搭建全连接神经网络进行回归预测 1、导入库2、数据准备3、数据拆分4、数据标准化5、数据转换6、模型搭建7、模型训练8、模型预测9、完整代码 1、导入库 引入必要的库&#xff0c;包括PyTorch、Pandas等。 import numpy as np import pandas as pd f…...

103.216.154.X服务器出现漏洞了有什么办法?

服务器出现漏洞是一种严重的安全风险&#xff0c;需要及时采取措施来应对。以下是一些常见的应对措施&#xff1a; 及时更新补丁&#xff1a;确保服务器上的操作系统、应用程序和软件都是最新版本&#xff0c;并及时应用相关的安全补丁&#xff0c;以修复已知的漏洞。 强化访问…...

数据结构:堆的实现(C实现)

个人主页 &#xff1a; 个人主页 个人专栏 &#xff1a; 《数据结构》 《C语言》 文章目录 一、堆二、实现思路1. 结构的定义2. 堆的构建 (HeapInit)3. 堆的销毁 (HeapDestroy)4. 堆的插入 (HeapPush)5. 堆的删除 (HeapPop)6. 取堆顶的数据 (HeapTop)7. 堆的数据个数 (HeapSize…...

数据分析两件套ClickHouse+Metabase(一)

ClickHouse篇 安装ClickHouse ClickHouse有中文文档, 安装简单 -> 文档 官方提供了四种包的安装方式, deb/rpm/tgz/docker, 自行选择适合自己操作系统的安装方式 这里我们选deb的方式, 其他方式看文档 sudo apt-get install -y apt-transport-https ca-certificates dirm…...

urllib爬虫模块

urllib爬取数据 import urllib.request as request# 定义url url "https://www.baidu.com" #模拟浏览器发起请求获取响应对象 response request.urlopen(url)""" read方法返回的是字节形式的二进制数据 二进制--》字符串 解码 decode( 编码的格式…...

TCP消息传输可靠性保证

TCP链接与断开 -- 三次握手&四次挥手 三次握手 TCP 提供面向有连接的通信传输。面向有连接是指在数据通信开始之前先做好两端之间的准备工作。 所谓三次握手是指建立一个 TCP 连接时需要客户端和服务器端总共发送三个包以确认连接的建立。在socket编程中&#xff0c;这一…...

Visual Studio 与QT ui文件

对.ui文件鼠标右键&#xff0c;然后单击 Open with…在弹出的窗口中&#xff0c;选中左侧的 Qt Designer&#xff0c;然后单击右侧的 Add 按钮&#xff0c;随后会弹出一个窗口&#xff0c;在 Program: 输入框中输入 Qt Designer 的路径&#xff0c;最后单击 OK找到 Qt Designer…...

竞赛项目 深度学习验证码识别 - 机器视觉 python opencv

文章目录 0 前言1 项目简介2 验证码识别步骤2.1 灰度处理&二值化2.2 去除边框2.3 图像降噪2.4 字符切割2.5 识别 3 基于tensorflow的验证码识别3.1 数据集3.2 基于tf的神经网络训练代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x…...

ORA-00845: MEMORY_TARGET not supported on this system

处理故障时&#xff0c;发现startup实例失败&#xff0c;报错ORA-00845: MEMORY_TARGET not supported on this system SYSorcl1> startup; ORA-00845: MEMORY_TARGET not supported on this system 查看alert日志&#xff0c;报错如下 Starting ORACLE instance (normal…...

wps设置一键标题字体和大小

参考 wps设置一键标题字体和大小&#xff1a;https://www.kafan.cn/A/7v5le1op3g.html 统一一键设置...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用&#xff1a;作为微服务架构的网关&#xff0c;统一入口&#xff0c;处理所有外部请求。 核心能力&#xff1a; 路由转发&#xff08;基于路径、服务名等&#xff09;过滤器&#xff08;鉴权、限流、日志、Header 处理&#xff09;支持负…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes&#xff08;简称K8s&#xff09;中&#xff0c;Ingress是一个API对象&#xff0c;它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress&#xff0c;你可…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩

目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

C++实现分布式网络通信框架RPC(2)——rpc发布端

有了上篇文章的项目的基本知识的了解&#xff0c;现在我们就开始构建项目。 目录 一、构建工程目录 二、本地服务发布成RPC服务 2.1理解RPC发布 2.2实现 三、Mprpc框架的基础类设计 3.1框架的初始化类 MprpcApplication 代码实现 3.2读取配置文件类 MprpcConfig 代码实现…...