Page 1 sur 1

Afficher la limite extérieure de 2 relations accolées

Publié : mar. juil. 05, 2016 5:46 pm
par wishingwell
Bonjour,

Je cherche à afficher plusieurs régions contiguës sur Umap, mais sans afficher les limites propres de chaque région.

Sur cette carte (exemple), je voudrais pouvoir montrer uniquement la limite extérieure de l'ensemble "Bretagne + Pays-de-Loire + Centre Val-de-Loire".

https://framacarte.org/fr/map/framatest ... .066/3.395

J'ai compris comment afficher les 2 relations via OverPass Turbo, mais cela affiche aussi les limites de chaque relations.

Code : Tout sélectionner

[out:json];
// gather results
(
  (
  relation["name"="region1"];
  relation["name"="region2"];
  relation["name"="region3"];
  )
);
// print results
out body;
>;
out skel qt;
Je me doute qu'il y a une astuce pour faire LA bonne requêtre OverPass, mais je ne n'arrive pas à m'en sortir avec la doc d'OverPass :(

Re: Afficher la limite extérieure de 2 relations accolées

Publié : mar. juil. 05, 2016 11:01 pm
par Sefoun
Salut,

A vrai dire je ne sais pas si ce que tu cherche à faire est vraiment faisable (facilement en tout cas). Ce que tu décris ressemble à une Union ou une Fusion dans les SIG, sauf que Overpass ne manipule (il me semble) pas la géométrie des données OSM, c'est plutôt un outil de filtrage.

La doc d'overpass parle bien d'Union, de Différence et d'Intersection mais pour avoir essayé l'Union je ne comprend pas vraiment ce que ça recouvre dans le cadre d'overpass, en tout cas ça ne donne pas ce que tu cherches ou alors je l'ai mal utilisé.

Re: Afficher la limite extérieure de 2 relations accolées

Publié : mer. juil. 06, 2016 11:23 am
par JBosm
Bonjour,
Si tu maitrises un peu JOSM, tu peux en détourner l'usage pour récupérer ce que tu veux, soit en récupérant les régions puis en les fusionnant, soit en passant par comcommaker (http://comcommaker.openstreetmap.fr/) pour générer directement l'union. Par contre, comcom ne descend pas jusqu'à la région, il va falloir sélectionner département par département.
Et évidemment, ne rien envoyer de JOSM vers les serveurs OSM !
JB.

Re: Afficher la limite extérieure de 2 relations accolées

Publié : dim. juil. 10, 2016 7:46 pm
par wishingwell
Merci pour les réponses :)

@Sefoun Sans parler de géométrie, j'attendais à pouvoir faire une requête OSM type type :

"relation 1 + relation 2, exclure tous les nœuds qui appartiennent à la fois la relation 1 et la relation 2"

C'est pas exactement ce que je cherche, mais ça s'en approcherait à 99%.

@JBosm Je maîtrise pas du tout Josm :( Mais alors pas du tout.

Je vais tenter de virer tous les nœuds en double à partir du résultats de ma requête OverPass :/

Re: Afficher la limite extérieure de 2 relations accolées

Publié : lun. juil. 11, 2016 1:31 pm
par BrunoC
Bonjour,

Justement je cherchais à comprendre les opérateurs d'intersections et de différences d'Overpass.
Voici mon résultat pour des communes: 3 communes, en déduire le périmètre.
C'est itératif, donc on peut en ajouter.
Si quelqu'un a des idées d'optimisation, je suis preneur.


Bruno

http://overpass-turbo.eu/s/hfg

Code : Tout sélectionner

[out:json][timeout:120];

//sélection de la commune de Pornic
relation[boundary=administrative][name=Pornic];
//les way de Pornic dans le résultat intermédiaire
way(r)->.resultat; 


// **** Ajout de chauvé
relation[boundary=administrative][name="Chauvé"];
way(r)->.a ;


// intersection de resultat avec a
way.resultat.a->.diff;
// le nouveau résultat est la réunion des 2 intersections (!)
( 
  (.resultat; - .diff) ;
  (.a; - .diff) ;
 )->.resultat;

// **** Ajout de Préfailles
relation[boundary=administrative][name="Préfailles"];
way(r)->.a ;

// intersection de resultat avec a
way.resultat.a->.diff;
// le nouveau résultat est la réunion des 2 intersections (!)
( 
  (.resultat; - .diff) ;
  (.a; - .diff) ;
 );


//Le résultat précédant (_) est réuni avec ses nodes
(._;>;);

out skel qt;

Re: Afficher la limite extérieure de 2 relations accolées

Publié : ven. juil. 22, 2016 10:58 am
par wishingwell
@BrunoC Ça marche super bien ! Et c'est à 90% ce que je cherchais à faire.

Comme idée d'amélioration :

Là quand on exporte depuis OverPass Turbo, ça donne une FeatureCollection avec *énormément* de Feature de geometry LineString.

À l'import dans Umap, on voit bien la forme, mais le visualisateur de données affiche *chaque* Feature. Pas très pratique : / Cf. carte ci-dessous :

https://framacarte.org/fr/map/framatest ... .857/4.592

Je sais pas si c'est faisable, mais l'idéal serait une requête qui à l'export donne une FeatureCollection avec une Feature unique, de geometry MultiPolygon

Re: Afficher la limite extérieure de 2 relations accolées

Publié : dim. juil. 24, 2016 10:13 am
par BrunoC
Tu as essayé un export gpx ?

Bruno

Re: Afficher la limite extérieure de 2 relations accolées

Publié : mer. juil. 27, 2016 10:10 am
par wishingwell
J'ai testé un export GPX et un autre KML, toujours le même résultat :/

Umap affiche chacune des ways comme une entrée à part, plutôt qu'une relation unique qui contiendrait toutes les ways.