[英]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.