我有一个地图,它使用mapboxgl根据一些标准隐藏或显示地图标记。
隐藏标记按预期工作,但当我希望这些标记再次显示时,它们会闪烁几毫秒,然后再次消失,而地图则隐藏标签(街道名称等)。在他们再次出现之前的底层。
看这个视频:https://streamable.com/debcp
参见下面的代码:https://codepen.io/jakobfuchs/details/VRRgJO
我得出的结论是,这是由于在标记符号层上设置'icon-allow-overlap': true
造成的。
有什么建议可以让我保持这样的设置并避免闪烁吗?
奇怪的是,这不是100%的时间,而是95%的时间。
代码样本:
标记层:
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,
}
});
过滤代码:
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);
});
发布于 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
希望这会有帮助,谢谢!
https://stackoverflow.com/questions/55341462
复制相似问题