美文网首页GIS加油站
mapboxGL中popup遮挡的优化

mapboxGL中popup遮挡的优化

作者: 牛老师讲webgis | 来源:发表于2020-07-28 11:54 被阅读0次

    概述

    在MapboxGL中,使用popup弹窗时,弹窗会出现超出范围的情况,本文就此问题做了点优化,共享记录下,一做自用,一做共享。

    实现效果

    GIF.gif

    实现代码

    结合popup的open事件,实现位置的调整。实现代码如下:

    // 调整popup位置
    that.popup.on('open', function(){
      var ele = $(that.popup.getElement());
      var offset = ele.offset();
      var top = offset.top;
      var left = offset.left;
      var right = ele.width() + left;
      var mapEle = $(map.getContainer());
      var mapOffset = mapEle.offset();
      var mapTop = mapOffset.top;
      var mapLeft = mapOffset.left;
      var mapRight = mapEle.width() + mapLeft;
      var center = map.getCenter();
      var centerPx = map.project(center);
      var h = 0, v = 0, size = 20;
      if(top < mapTop) {
        v = mapTop - top + size;
      }
      if(left < mapLeft) {
        h = mapLeft - left + size;
      }
      if(right > mapRight) {
        h = mapRight - right - size;
      }
      centerPx = [centerPx.x - h, centerPx.y - v];
      map.panTo(map.unproject(centerPx));
    });
    

    技术博客
    CSDN:http://blog.csdn.NET/gisshixisheng
    联系方式

    类型 内容
    qq 1004740957
    公众号 lzugis15
    e-mail niujp08@qq.com
    webgis群 452117357
    LZUGIS

    相关文章

      网友评论

        本文标题:mapboxGL中popup遮挡的优化

        本文链接:https://www.haomeiwen.com/subject/cnhfrktx.html