> 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
_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-fr