<div dir="ltr">Si on indique une bbox, overpass passera en revue tout les objets dans cette bbox sans pouvoir tirer partie de ses index.<div>Si on utilise seulement un tag, overpass utilise l'index sur ce tag pour trouver les objets correspondants qui si ils sont peu nombreux donneront le résultat très rapidement.</div>
<div><br></div><div>overpass n'a pas la puissance (relative) du query planner de postgres qui va tenter d'exploiter le meilleur index et la meilleure méthode en fonction de la requête et des données (via des statistiques).</div>
<div><br></div><div>Il faudrait avoir des statistiques sur tout les tags, et une info sur la quantité (même approximative) d'objets présents dans une bbox pour choisir la meilleure approche... chercher par bbox et filtrer sur les tags ou l'inverse.</div>
<div><br></div><div>En attendant un query-planner de ce type (et si c'est pas déjà le cas), je verrai bien un fonctionnement où:<br><div><span style="background-color:rgb(255,255,255)"><font color="#000000"><br></font></span></div>
</div><div><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-family:arial,sans-serif;font-size:13px">way</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px"> ["power"="sub_station"]</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px"> ["operator"="RTE"]</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px"> (41.333740, -5.140600, 51.089062, 9.559320);</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">(._;>;);</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">out body;</span><br></font></span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000"><br></font></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000">chercherai sur les tags, puis filtrerai sur la bbox (en suivant l'ordre des critères dans la requête)</font></span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000"><br></font></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000">et</font></span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000"><br></font></span></div><div><div><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-family:arial,sans-serif;font-size:13px">way</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px"> </span><span style="font-family:arial,sans-serif;font-size:13px">(41.333740, -5.140600, 51.089062, 9.559320)</span></font></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000"> ["power"="sub_station"]</font></span></div>
<div><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-family:arial,sans-serif;font-size:13px"> ["operator"="RTE"]</span><span style="font-family:arial,sans-serif;font-size:13px"> ;</span><br style="font-family:arial,sans-serif;font-size:13px">
<span style="font-family:arial,sans-serif;font-size:13px">(._;>;);</span><br style="font-family:arial,sans-serif;font-size:13px"><span style="font-family:arial,sans-serif;font-size:13px">out body;</span><br></font></span></div>
</div><div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000"><br></font></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000">chercherai sur la bbox et filtrerai sur les tags... d'ailleurs je pense que changer l'ordre des tags a aussi une importance, non ?</font></span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000"><br></font></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000">Voici ce qui devrait être le plus rapide si l'ordre de recherche/filtre respectait celui de la requête.</font></span></div>
<div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000"><br></font></span></div><div><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-size:13px;font-family:arial,sans-serif">way</span><br style="font-size:13px;font-family:arial,sans-serif">
<span style="font-size:13px;font-family:arial,sans-serif"> </span><span style="font-family:arial,sans-serif;font-size:13px">["operator"="RTE"]</span></font></span></div><div><span style="font-family:arial,sans-serif;font-size:13px;background-color:rgb(255,255,255)"><font color="#000000"> ["power"="sub_station"]</font></span></div>
<div><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-size:13px;font-family:arial,sans-serif"> (41.333740, -5.140600, 51.089062, 9.559320);</span><br style="font-size:13px;font-family:arial,sans-serif">
<span style="font-size:13px;font-family:arial,sans-serif">(._;>;);</span><br style="font-size:13px;font-family:arial,sans-serif"><span style="font-size:13px;font-family:arial,sans-serif">out body;</span></font></span></div>
<div><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-size:13px;font-family:arial,sans-serif"><br></span></font></span></div><div><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-size:13px;font-family:arial,sans-serif"><br>
</span></font></span></div><div><span style="background-color:rgb(255,255,255)"><font color="#000000"><span style="font-size:13px;font-family:arial,sans-serif">Un tel fonctionnement permettrait à celui qui écrit la requête de l'optimiser en ayant une vague idée de ce qui est le plus discriminant.</span></font></span></div>
<div><span style="font-size:13px;color:rgb(80,0,80);font-family:arial,sans-serif"><br></span></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">Le 2 octobre 2013 23:03, Ista Pouss <span dir="ltr"><<a href="mailto:istaous@gmail.com" target="_blank">istaous@gmail.com</a>></span> a écrit :<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Le 2 octobre 2013 22:39, Stéphane Péneau <span dir="ltr"><<a href="mailto:stephane.peneau@wanadoo.fr" target="_blank">stephane.peneau@wanadoo.fr</a>></span> a écrit :<br>
<div class="gmail_extra"><div class="gmail_quote"><div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Je viens de faire une requête très simple (elle trouve 18 POI) sur la france entière .<br>
<br>
Avec bbox : au bout de 15 minutes ce n'était pas terminé<br>
Sans bbox : résultat quasi instantané.<br>
<br></blockquote><div><br></div></div><div>Mais alors, comment fait-on ensuite pour savoir quels sont les points qui correspondent à la bbox ?<br></div><div dir="ltr"> <br></div><div>(ou question subsidiaire : pourquoi faut-il tant de temps à overpass pour faire le tri sur la bbox ??? )<br>
</div></div>
</div></div>
<br>_______________________________________________<br>
Talk-fr mailing list<br>
<a href="mailto:Talk-fr@openstreetmap.org">Talk-fr@openstreetmap.org</a><br>
<a href="https://lists.openstreetmap.org/listinfo/talk-fr" target="_blank">https://lists.openstreetmap.org/listinfo/talk-fr</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>Christian Quest - OpenStreetMap France<br>Un nouveau serveur pour OSM... <a href="http://donate.osm.org/server2013/" target="_blank">http://donate.osm.org/server2013/</a>
</div>