[OSM-talk-fr] Overpass.Turbo.eu résultat requête

Roland Olbricht roland.olbricht at gmx.de
Mer 14 Mai 20:56:42 UTC 2014


 > area [name="France"][admin_level="2"]->.zone;
 > (
 >    node(area.zone)
 >    ["name"="Conseil Général"];
 > );
 > out meta;
 >
 > //--------------------------------------
 >
 > area [name="France"][admin_level="2"]->.zone;
 > (
 >    node(area.zone)
 >    ["name"~"^Conseil Général$"];
 > );
 > out meta;

Un area ne contiens que leur id comme données dans Overpass 
internalement. C'est garanti qu'elle est toujours de petite taille.

Puis, les deux requêtes sont optimisées très different:

Pour le premier, Overpass va d'abord ramasser tous les ids de nodes qui 
ont un tag "name"="Conseil Général". C'est parce que même pour les bbox 
petites c'est aussi vite de charger tous les ids que de chercher un bbox 
entier.

Pour le deuxième, Overpass va aboutir avec l'area (ou egalement un bbox) 
parce que il pense que le critère spatial et plus specifiquement que un 
liste de les ids potentiellement très longue (pense à un requête comme 
"name"~"." ou "highway"~".", Overpass ne peut pas analyser des regvs).

Il n'y a aucune analyse ni de la nombre de résultats poentiels un de la 
taille d'un area ou bbox. C'est simplement la difference entre un 
requête par égalité contre un requête par regv.

Pour forcer filtrer par regv d'abord, on peut ce formuler par deux 
instructions:

area [name="France"][admin_level="2"]->.zone;
(
    node["name"~"^Conseil Général$"];
    node._(area.zone);
);
out meta;

Ca va toujour s'il n'y a pas trop des résultats - moins d'un mille des 
résultats.

Roland




Plus d'informations sur la liste de diffusion Talk-fr