Nan_Wall 2023-05-09 15:36 采纳率: 100%
浏览 17
已结题

百度地图弹窗InfoBox无法关闭

在百度地图项目中引入InfoBox_min.js完成自定义样式的信息弹窗,但是当要关闭该弹窗时,官方给的方案是使用close函数,我调用了却无法关闭该弹窗。四处查资料,弹窗继承于Overlay类,就想用removeOverlay方法,但还是无法关闭弹窗;同时查看了close函数的源码,发现其本质也是调用removeOverlay方法,但都无法关闭该弹窗……
想问下这是不是百度地图的一个bug,大家有遇到过这个问题吗?代码能力有限,发出来共同探讨下🙁
主要参考的是这位博主的代码:https://blog.csdn.net/dandan__666/article/details/122877124

  • 写回答

1条回答 默认 最新

  • 阿尔法斗士 2023-05-09 15:46
    关注

    可能不是百度地图的一个 bug,而是由于代码逻辑或调用方式的问题。close() 方法和 removeOverlay() 方法都可以在百度地图中关闭信息弹窗,但请确保正确的调用方式。

    使用 close() 方法时,需要确保 InfoBox 对象已经正确初始化并成功显示在地图上。然后,可以通过以下方式调用该方法来关闭信息弹窗:

    infoBox.close();
    

    其中 infoBox 是你创建的 InfoBox 对象的引用。

    使用 removeOverlay() 方法时,需要首先获取当前地图上的所有覆盖物,并找到你创建的自定义样式信息弹窗对象(即 InfoBox 对象),然后再移除它。具体示例代码如下:

    var overlays = map.getOverlays();
    for (var i = 0; i < overlays.length; i++) {
      if (overlays[i].toString() == "[object InfoBox]") {
        map.removeOverlay(overlays[i]);
      }
    }
    

    其中 map 是你创建的百度地图对象的引用。

    如果以上两种方法都无法关闭信息弹窗,请检查以下几点:

    • 确认程序没有抛出异常,并将信息弹窗隐藏或删除;
    • 检查是否正确的传递了参数,并确认其类型和值是否正确;
    • 如果使用的是第三方库,请参考其官方文档以获得更准确的关闭信息弹窗方法。

    另外,建议你对代码进行调试并检查浏览器的控制台是否有错误或警告消息输出。这样可以帮助你更快地解决问题并了解程序状态的细节。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月25日
  • 已采纳回答 5月17日
  • 创建了问题 5月9日

悬赏问题

  • ¥15 服务端控制goose报文控制块的发布问题
  • ¥15 学习指导与未来导向啊
  • ¥15 求多普勒频移瞬时表达式
  • ¥15 如果要做一个老年人平板有哪些需求
  • ¥15 k8s生产配置推荐配置及部署方案
  • ¥15 matlab提取运动物体的坐标
  • ¥15 人大金仓下载,有人知道怎么解决吗
  • ¥15 一个小问题,本人刚入门,哪位可以help
  • ¥30 python安卓开发
  • ¥15 使用R语言GD包一直不出结果