Есть ли способ определить переменную {z} в части векторных плиток сценария на лету на основе масштабирования? Я хочу определить разные числа для каждого увеличения, чем по умолчанию mapbox {z}:
map.addSource('PWS', {
type: 'vector',
tiles: ['//features.mvt?x={x}&y={y}&z={z}&apiKey={akey}&tile-size=512&time='+time[0]+'&time='+time[1]+'&time='+time[2]+'&time='+time[3]+'&stepped=true'],
tileSize: 512,
});
Я пытался использовать этот метод, и он работает нормально, но ему трудно работать с кэшированными плитками ...
map.on('zoomend', function() {
zm = map.getZoom();
if (zm > 0 && zm < 2){
zoomM = 4;
}
else if (zm >= 2 && zm < 3){
zoomM = 4;
}
else if (zm >= 3 && zm < 4){
zoomM = 4;
}
else if (zm >= 4 && zm < 5){
zoomM = 4;
}
else if (zm >= 5 && zm < 6){
zoomM = 5;
}
else if (zm >= 6 && zm < 7){
zoomM = 7;
}
else if (zm >= 7 && zm < 8){
zoomM = 8;
}
else if (zm >= 8 && zm < 9){
zoomM = 9;
}
else if (zm >= 9 && zm < 10){
zoomM = 10;
}
else if (zm >= 10 && zm < 11){
zoomM = 11;
}
else {
zoomM = 12;
}
console.log(zoomM,zm);
const source = map.getSource('PWS');
source.tiles = ['//features.mvt?x={x}&y={y}&z='+zoomM+'&apiKey={akey}&tile-size=512&time='+pwstime[0]+'&time='+pwstime[1]+'&time='+pwstime[2]+'&time='+pwstime[3]+'&stepped=true'];
map.style.sources['PWS'].reload();
});
Должен быть лучший способ сделать это ...
Я также пробовал это: Рекомендуемый способ переключения URL-адресов тайлов в mapbox-gl-js
И видел это: https://github.com/mapbox/mapbox-gl-js/issues/2941