当前位置: 首页 > 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);});}

@漏刻有时

http://www.lryc.cn/news/124271.html

相关文章:

  • R语言生存分析(机器学习)(2)——Enet(弹性网络)
  • 【Docker】使用 Docker Registry 搭建自己的 Docker 镜像仓库
  • Spring 是什么框架?
  • Azure添加网络接口
  • Linux 内核第一版 (v0.01) 开源代码解读
  • tp6 v3微信退款
  • 使用 AndroidX 增强 WebView 的能力
  • Maven基础之仓库、命令、插件机制
  • 【ArcGIS】经纬度数据转化成平面坐标数据
  • 使用自己的数据利用pytorch搭建全连接神经网络进行回归预测
  • 103.216.154.X服务器出现漏洞了有什么办法?
  • 数据结构:堆的实现(C实现)
  • 数据分析两件套ClickHouse+Metabase(一)
  • urllib爬虫模块
  • TCP消息传输可靠性保证
  • Visual Studio 与QT ui文件
  • 竞赛项目 深度学习验证码识别 - 机器视觉 python opencv
  • ORA-00845: MEMORY_TARGET not supported on this system
  • wps设置一键标题字体和大小
  • TIA博途WINCC_如何在IO域中保证输入数值只能为正数?
  • 《Linux从练气到飞升》No.13 Linux进程状态
  • 安卓快速开发
  • SpringCloud微服务之间如何进行用户信息传递(涉及:Gateway、OpenFeign组件)
  • RabbitMQ之TTL+死信队列实现延迟队列
  • GrapeCity Documents for PDF (GcPdf) 6.2 Crack
  • 【Sklearn】基于随机森林算法的数据分类预测(Excel可直接替换数据)
  • 问AI一个严肃的问题
  • Flowable流程的挂起与激活详解
  • 探索前端动画之CSS魔法
  • Oracle数据库登录遇到密码临期问题