首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用“图标-允许-重叠”的Mapbox标记闪烁

使用“图标-允许-重叠”的Mapbox标记闪烁
EN

Stack Overflow用户
提问于 2019-03-25 15:40:44
回答 1查看 4.5K关注 0票数 4

我有一个地图,它使用mapboxgl根据一些标准隐藏或显示地图标记。

隐藏标记按预期工作,但当我希望这些标记再次显示时,它们会闪烁几毫秒,然后再次消失,而地图则隐藏标签(街道名称等)。在他们再次出现之前的底层。

看这个视频:https://streamable.com/debcp

参见下面的代码:https://codepen.io/jakobfuchs/details/VRRgJO

我得出的结论是,这是由于在标记符号层上设置'icon-allow-overlap': true造成的。

有什么建议可以让我保持这样的设置并避免闪烁吗?

奇怪的是,这不是100%的时间,而是95%的时间。

代码样本:

标记层:

代码语言:javascript
运行
复制
  map.addLayer({
    id: 'property-layer',
    type: 'symbol',
    source: 'properties',
    filter: ['!has', 'point_count'],
    layout: {
      'symbol-placement': 'point',
      'icon-image': 'marker',
      'icon-size': 1,
      'icon-anchor': 'bottom',
      'icon-allow-overlap': true,
    }
  });

过滤代码:

代码语言:javascript
运行
复制
  const filterToggle = document.getElementById('filterToggle');
  filterToggle.addEventListener('change', function(e) {
    if (openPopup) {
      openPopup.remove();
      openPopup = '';
    }
    let properties;
    if (this.checked) {
      properties = {
        type: "FeatureCollection",
        features: features.features.filter((property) => property.properties.availability === 'Available')
      }
    } else {
      properties = features;
    }
    map.getSource('properties').setData(properties);
  });
EN

回答 1

Stack Overflow用户

发布于 2019-12-16 03:04:31

我也面临着同样的问题,我的解决方案是使用icon-ignore-placement而不是icon-allow-overlap,,它仍然没有任何问题

您可以在这里找到文档:https://docs.mapbox.com/mapbox-gl-js/style-spec/#layout-symbol-icon-ignore-placement

希望这会有帮助,谢谢!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55341462

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档