mirror of
https://github.com/maplibre/maplibre-rs.git
synced 2025-12-08 19:05:57 +00:00
Optimize tile request starting
This commit is contained in:
parent
67109d8827
commit
ae618da5b1
@ -219,11 +219,7 @@ impl IOScheduler {
|
|||||||
) -> Result<(), SendError<TileRequest>> {
|
) -> Result<(), SendError<TileRequest>> {
|
||||||
let TileRequest { coords, layers } = &tile_request;
|
let TileRequest { coords, layers } = &tile_request;
|
||||||
|
|
||||||
let mut missing_layers = layers.clone();
|
if !self.tile_cache.is_layers_missing(coords, layers) {
|
||||||
self.tile_cache
|
|
||||||
.retain_missing_layer_names(coords, &mut missing_layers);
|
|
||||||
|
|
||||||
if missing_layers.is_empty() {
|
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -56,4 +56,22 @@ impl TileCache {
|
|||||||
layers.retain(|layer| !tessellated_set.contains(layer));
|
layers.retain(|layer| !tessellated_set.contains(layer));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn is_layers_missing(&self, coords: &WorldTileCoords, layers: &HashSet<String>) -> bool {
|
||||||
|
if let Some(results) = self.index.get(coords) {
|
||||||
|
let tessellated_set: HashSet<&str> = results
|
||||||
|
.iter()
|
||||||
|
.map(|tessellated_layer| tessellated_layer.layer_name())
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
for layer in layers {
|
||||||
|
if !tessellated_set.contains(layer.as_str()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
true
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user