繁体   English   中英

在 map 空闲之前不要刷新 Mapbox 瓦片源

[英]Do not refresh Mapbox tile source until map is idle

我正在使用 Mapbox GL API V2。

我正在加载这样的第 3 方图块:

    map.addSource('test', {
        'type': 'vector',
        "tiles": [
            "http://mytileserver/tiles/test/{z}/{x}/{y}"
        ]
    });

这很好用 - 除了用户平移/拖动 map 时,瓷砖会不断加载。 如此之多,以至于瓷砖服务器无法跟上。

我在 Mapbox 中添加了以下事件:

map.on('movestart', () => {
    map.setLayoutProperty('test', 'visibility', 'none');
});

map.on('moveend', () => {
    map.setLayoutProperty('test', 'visibility', 'visible');
});

这非常有效,因为它可以防止在用户完成拖动 map 之前加载图块。 然而,为了实现这一点,它会使现有的瓷砖暂时不可见,直到 map 停止移动。 这并不理想。

当 map 被移动/平移时,是否有任何方法可以将现有图块保留在屏幕上 - 但(至关重要)在moveend事件发生之前不会真正更新图块?

谢谢!

您可以使用一种idle方法代替moveend

map.on('idle', () => {
    map.setLayoutProperty('test', 'visibility', 'visible');
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM