百度地图中怎么对多个覆盖物进行指定监控

 时间:2026-02-19 04:07:57

1、百度搜索“百度地图api”,找到百度地图api的首页,点击web开发、jsAPI大众版,进入地图实例

百度地图中怎么对多个覆盖物进行指定监控

百度地图中怎么对多个覆盖物进行指定监控

2、随便点击一个实例进入,在左边导航栏中找覆盖物示例,此处我们可以参考下获取覆盖物信息这个页面。

百度地图中怎么对多个覆盖物进行指定监控

3、将页面内容复制到自己项目的html页面中。将包含地理经纬度以及半径的json数据循环添加圆形覆盖物。

百度地图中怎么对多个覆盖物进行指定监控

百度地图中怎么对多个覆盖物进行指定监控

4、生成覆盖物后我们用addEventListener对其进行事件监控,本文是为了实现当鼠标进入圆形覆盖物中时改变覆盖物的颜色,当鼠标离开的时候将覆盖物的颜色还原。

百度地图中怎么对多个覆盖物进行指定监控

5、用getOverlays函数获取当前地图中所有的覆盖物信息,可以调试看具体信息。按照正常思路来说应该直接写成这样就可以了:

        for (var i = 0; i < vers.length; i++) {

            vers[i].addEventListener('mouseover', function () {

                this.setFillColor("red");

            });

            vers[i].addEventListener('mouseout', function () {

                this.setFillColor("yellow");

            });

        }

百度地图中怎么对多个覆盖物进行指定监控

6、可是,实际操作中发现,for循环在一开始就已经走完了,所以监听事件监听到的只是getOverlays中最后一个覆盖物,改变的也只是改变这个覆盖物而已,和我们想要实现的有出入。

百度地图中怎么对多个覆盖物进行指定监控

7、我们希望实现的是点击某一个覆盖物,监听到该覆盖物。这时候,我们需要进行一次事件闭包。像这样:

 var vers = map.getOverlays();

        for (var i = 0; i < vers.length; i++) {

            (function () {

                var index = i;

                vers[i].addEventListener('mouseover', function () {

                    this.setFillColor("red");

                });

                vers[i].addEventListener('mouseout', function () {

                    this.setFillColor("yellow");

                });

            })();

        }

百度地图中怎么对多个覆盖物进行指定监控

8、这样的话就可以实现我们想要实现的效果啦。

百度地图中怎么对多个覆盖物进行指定监控

  • 哈飞小霸王车辆灯光如何使用
  • 全景泊车系统如何安装?
  • 高速公路上开过了出口怎么办,注意什么问题
  • 自助旅行中怎么样自助加油?
  • 启辰M50V汽车灯光高度怎么调节
  • 热门搜索
    什么是牙线 但愿人长久千里共婵娟的婵娟是什么意思 自暴自弃的意思 山行古诗的意思翻译 淡蓝色配什么颜色好看 排卵期什么时候同房 lae是什么意思 小样什么意思 主宰的意思 门庭冷落什么意思