使用百度地图API整多覆盖物渲染的时候,老是会出现”A覆盖物遮住了B覆盖物导致无法触发A覆盖物的点击事件”这样的问题。高德地图里面几乎都有setZIndex这样的方法供开发者设置覆盖物图层,百度地图API里面只有TileLayerOptions、CanvasLayerOptions、Label和Marker有。那么其他的覆盖物要怎么设置层级呢?
答案是先绘制的在下面,后绘制的在上面

this.map.addOverlay(circle);
this.map.addOverlay(marker);
this.map.addOverlay(polyline);

像这样的一段代码,代表先画circle,再画marker,最后画polyline。这样的话circle就在最底层,marker在circle的上面,polyline在marker的上面。如果marker正好和polyline重合,且marker的宽度没有polyline的宽度大,那么这个时候点击marker的位置是触发不了marker的监听事件的。
同理,如果是这样一段代码

this.map.addOverlay(marker);
this.map.addOverlay(polyline);
this.map.addOverlay(circle);

代表最后画circle,那么circle就在所有覆盖物的上面。如果正好polyline或者marker处于circle覆盖区域,那么polyline和marker这俩覆盖物都无法触发它们自己的监听。

值得一提的是,在百度地图API里,map似乎永远是最上层,我们通过dom似乎也能看到这个结果。这就造成了触发任意覆盖物的监听如click时也必定会触发map的监听。我们可以通过map监听回调函数入参中的overlay属性来判断是否该事件是否有其他覆盖物参与。比如click监听的情况下,如果map的监听回调参数中overlay有值,代表该次点击点到了其他的覆盖物上。我们可以通过return直接结束掉本次监听来避免多余逻辑的产生。

百度地图API的图层zIndex问题相关推荐

  1. Echarts结合百度地图API

    Echarts结合百度地图API 下面的代码运用到了Echarts 和百度地图API,地图的样式自定义的.(效果图在最下边) 运用到了百度API中的自定义控件,监听事件addEventListener ...

  2. 利用百度地图api,自定义起始点进行驾车路线的搜索,并可以根据不同驾车策略给出驾驶指导

    利用百度地图api,通过在输入框(带自动填充)输入起始点,然后根据用户选择的不同驾车策略来进行驾车路线搜索并显示具体的路线信息.驾车策略共三种,默认路线(时间最短).最短路程.不走高速.左侧搜索栏可以 ...

  3. 用百度地图API分析打交通大数据

    百度地图API, 文档不全,例子不细致. 在网上还没有太多有用的例子.比如说下面几个需求的解决方案就找不到: 1. 如何用百度地图API查询一个地点的经纬度. 2. 如何用百度地图通过一个经纬度查询商 ...

  4. android 3.0+百度地图api地图如何移动到指定的经纬度处

    由于百度地图api,2.0+和3.0+的改动比较大,api基本上被全换过了,有些同学可能2.0+的api使用的非常熟悉,但是更新到3.0+时,却会遇到一些小麻烦(由于api变了,你就需要重新学习它的a ...

  5. 百度地图API开发指南

    百度地图API开发指南 本文为百度地图API官方版本的开发指南,供各位51CTO的网友进行参考. 简介什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮 ...

  6. 【百度地图API】如何制作一张魔兽地图!!——CS地图也可以,哈哈哈

    [百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 原文:[百度地图API]如何制作一张魔兽地图!!--CS地图也可以,哈哈哈 摘要: 你玩魔兽不?你知道如何做一张魔兽地图不?! 快 ...

  7. 基于百度地图API的微信周边搜索

    这是百度LBS与微信结合的一个例子~~,已经加到 功能描述:点击微信的[+]后发送[位置]给微信公众号,会返回周边信息,也可以发送[附近xxx],如[附近公交],或者自己标注百度地图,标注您的连锁点或 ...

  8. 网页百度地图api,支持位置偏移

    网页百度地图api,支持位置偏移 需加载 jq <style type="text/css"> #allmap {width:100%; height:100%; bo ...

  9. android 百度地图 itemizedoverlay,[008] 百度地图API之ItemizedOverlay的使用(Android) .

    本篇文章主要介绍如何在百度地图上添加Overlay(即图层或覆盖物). Overlay简介 Overlay通常被译为"图层"或"覆盖物".那么对于地图而言,什么 ...

最新文章

  1. Redis 集群部署及踩过的坑
  2. 欧拉、欧几里得、笛卡尔都没能解决的数学问题,他探索了新的方案
  3. webpack打包优化_前端性能优化:webpack性能调优与Gzip原理
  4. ThinkingInJava_3
  5. python中模块sys与os的一些常用方法
  6. jzoj4228-C【dp】
  7. java 数组排序面试题_Java面试宝典_基础编程练习题_数组排序插值(一)
  8. 滴滴试行“选择路线”功能 乘客可自主选择行驶路线
  9. 原创:2016.4.25-2016.5.1 C# informal essay and tittle_tattle
  10. 如何使用GDAL进行图像镶嵌
  11. Atitit 小程序后端服务api艾提拉总结 目录 1. 服务端 1 1.1. 开放接口 1 1.1.1. 登录 1 1.1.2. 用户信息 1 1.1.3. 接口调用凭证 2 1.1.4. 数据分
  12. cartographer基于3d地图的纯定位模式
  13. 上市企业高管背景特质研究解析
  14. 机器学习的分类(监督学习、非监督学习、半监督学习)
  15. 区域卫生信息平台建设的“用友基因”
  16. 优雅的git commit
  17. 190824-英雄联盟传记爬取
  18. 免安装版jdk的配置及使用(附绿色版jdk1.7及jdk1.8)
  19. mysql高级教程(一)
  20. java代码实现十进制到二进制的转化

热门文章

  1. Ubuntu下Hadoop的安装教程
  2. Jquery-weui 弹窗
  3. 计算机彻底删除的文件如何恢复出厂设置,电脑的恢复出厂设置在哪里 如果是出厂设置肯定是删除所有...
  4. 架构设计:系统间通信(1)——概述从“聊天”开始上篇
  5. HTTP请求到爬虫代码的终南捷径
  6. 【Movie】绿皮书
  7. 运营商关闭2g服务器,中国联通正在关闭2G网络 但用户完全不必恐慌
  8. 蓝桥杯 二阶魔方旋转 暴力法
  9. SpringBoot中使用themeleaf
  10. 12、 Flutter Widgets 之 Stack,Positioned叠加组件