Le mardi 20 juillet 2010 21:13:37, Christophe Merlet a écrit :

> Ta requête ne semble pas faire ce que tu dis.
> 
> Il me semble que tu fais la somme des éléments des relations ayant
> (ref:sandre ET (waterway=river OU waterway=canal))

Oui, c'est ça, pour être bien clair, c'est :
quand (ref:sandre=le code qui m'intéresse et (waterway=river OU 
waterway=canal))

avec un "group by osm_id" à la fin, c'est à dire pour un seul et unique objet 
osm.

Question à $1, pourquoi "grouper des ways" alors qu'il ne s'agit que d'un seul 
objet ? ben parce que osm2pgsql découpe les trop grand ways et j'ai utilisé se 
hack pour compenser. (Je devrais pouvoir simplifier ça ultérieurement car j'ai 
patché mon osm2pgsql pour ne plus couper arbitrairement des longs way et ma 
requête devrait se simplifier en :

select osm_id,st_length(st_transform(way,2154)) as longueur 
  from planet_osm_line 
  where "ref:sandre"='bidule' 
  and (waterway='river' or waterway='canal' or waterway='stream') ;

A noter bien sûr que cette approche dispose d'une faille : si plusieurs objets 
osm porte la même référence sandre, je n'en prend qu'un au hasard sur les deux

> Or il me semble que la bonne formule est de faire la somme des éléments
> (waterway=river OU waterway=stream OU waterway=canal) des relations
> ayant juste ref:sandre.

Je ne suis pas sûr d'avoir compris, est-ce que ce que j'ai indiqué plus haut 
rend la chose plus claire ?

> Du coup dans ton tableau on trouve des rivières qui font 200% de leur
> taille normal car il prend en compte les riverbank contenu dans la
> relation :/

Exact... mais comment faire autrement ?
 
> Les manières de taguer varie, et pourtant ton script n'en accepte qu'une
> seule alors qu'il pourrait être beaucoup plus générique et exact.

Sans doute, mais à quelle complexité ? 

ensuite on pourrait philosopher : Est-ce que fournir des outils incroyablement 
complexes est une bonne chose pour osm ? permettre/aider/encourager le tagging 
très diversifié et non homogène est-il au final une bonne chose ? le mappeur 
doit il être au centre et les développeurs s'adapter, ou font ils parti de la 
chaîne de rétro-surveillance du schéma et des méthodes de tagging ?

En version plus terre à terre avec un exemple concret ça donne : le tag 
disused=yes n'est supporté par quasiment aucun logiciel (pourtant il n'est pas 
idiot) et on peut lire d'un développeur de osmarender :


"This type of tagging is extremely unfriendly to data consumers (don't assume 
that all data consumers that don't care about your pet tag supports it), and 
in osmarender it would require really big and ugly stylesheet changes to 
support it and it's related tags.

I'm not going to make the stylesheet almost impossible to figure out in order 
to support a bad tag."

Doit-on le conspuer ? doit-on prendre son avis de développeur comme : il y'a 
un problème avec ce tag ?

La question est posée, mais la réponse est loin...

--
sly


_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à