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

mapboxGL中popup遮挡的优化

作者: 牛老师讲GIS | 来源:发表于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