BMapGL矢量地图infowindow关闭

 

因为是点的弹窗,基本都是在js中定义的

1、首先:定义infowindow

let closeFunction = '<span ref="close" class="infoWindowEvent">X</span>';

let infoWindowCont = `  <div class='BMap_bubble_content2 BMap_bubble_content_pcs'><div class='form'> ` + closeFunction +   ` <div class="flexDiv">

                            <span class="title">名称:</span>

                            <div class="info">

                              ${pointObj.name}

                            </div>

                          </div></div>

                            </div>

                            `;

2、然后将信息窗口添加到地图上

let infoWindow = new BMapGL.InfoWindow(infoWindowCont, opts); map.openInfoWindow(infoWindow, bPoint);

 3、为信息窗口添加点击事件

if (!infoWindow.isOpen()) {
        // 第一次触发infowindow是走这里
        infoWindow.addEventListener("open", function (e) {
          eventBtn();
        });
      } else {
        eventBtn();
      }
      function eventBtn() {
        let infoWindowEvent =
          document.getElementsByClassName("infoWindowEvent");
        for (var i = 0; i < infoWindowEvent.length; i++) {
          infoWindowEvent[i].addEventListener("click", (e) => {
            let attributes = e.target.attributes;
            if (attributes[0]?.value && attributes[0].value == "close") {
              _this.mapObj.closeInfoWindow();
            }
          });
        }
      }

4、样式修改

.infoWindowEvent {

      position: absolute;

      top: 5px;

      right: 15px;

      color: rgba(255, 255, 255, 0.7);

      cursor: pointer;

    }

 5、大功告成!看下效果:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
百度地图InfoWindow 是一个信息窗口,可以在地图上显示一些自定义的文本或 HTML 内容。通常,当用户点击地图上的标记时,会弹出一个 InfoWindow 来显示该标记的相关信息。 要在百度地图上创建 InfoWindow,可以使用 BMap.InfoWindow 类。该类提供了一些方法来设置 InfoWindow 的位置、内容和样式等属性。例如,可以使用 setContent() 方法来设置 InfoWindow 的内容,使用 setPosition() 方法来设置 InfoWindow 的位置,使用 setWidth() 和 setHeight() 方法来设置 InfoWindow 的宽度和高度等。 以下是一个简单的示例,演示如何在百度地图上创建和显示一个 InfoWindow: ```javascript // 创建地图实例 var map = new BMap.Map("map-container"); // 创建标记 var marker = new BMap.Marker(new BMap.Point(116.404, 39.915)); // 创建 InfoWindow var infoWindow = new BMap.InfoWindow("这是一个信息窗口"); // 绑定事件,点击标记时显示 InfoWindow marker.addEventListener("click", function() { map.openInfoWindow(infoWindow, marker.getPosition()); }); // 将标记添加到地图map.addOverlay(marker); ``` 在上面的示例中,我们创建了一个地图实例和一个标记,并将标记添加到地图中。然后,我们创建了一个 InfoWindow,并将其内容设置为 "这是一个信息窗口"。最后,我们绑定了标记的点击事件,当用户点击标记时,会在标记的位置上显示 InfoWindow。 当然,要使 InfoWindow 更加丰富和灵活,我们可以使用 HTML、CSS 和 JavaScript 来自定义 InfoWindow 的内容和样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值