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

Extraire des données OSM, créer sa carte, uMap, utiliser sur un GPS ou un smartphone...
wishingwell
Messages : 4
Inscription : mar. juin 21, 2016 2:54 pm
Localisation : France

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

Message par wishingwell » mar. juil. 05, 2016 5:46 pm

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 :(

Sefoun
Messages : 239
Inscription : lun. nov. 03, 2014 8:01 pm

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

Message par Sefoun » mar. juil. 05, 2016 11:01 pm

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é.

JBosm
Messages : 76
Inscription : lun. avr. 22, 2013 12:43 pm

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

Message par JBosm » mer. juil. 06, 2016 11:23 am

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.

wishingwell
Messages : 4
Inscription : mar. juin 21, 2016 2:54 pm
Localisation : France

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

Message par wishingwell » dim. juil. 10, 2016 7:46 pm

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 :/

BrunoC
Messages : 374
Inscription : sam. juin 23, 2012 11:07 am
Localisation : Nantes
Contact :

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

Message par BrunoC » lun. juil. 11, 2016 1:31 pm

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;

wishingwell
Messages : 4
Inscription : mar. juin 21, 2016 2:54 pm
Localisation : France

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

Message par wishingwell » ven. juil. 22, 2016 10:58 am

@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

BrunoC
Messages : 374
Inscription : sam. juin 23, 2012 11:07 am
Localisation : Nantes
Contact :

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

Message par BrunoC » dim. juil. 24, 2016 10:13 am

Tu as essayé un export gpx ?

Bruno

wishingwell
Messages : 4
Inscription : mar. juin 21, 2016 2:54 pm
Localisation : France

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

Message par wishingwell » mer. juil. 27, 2016 10:10 am

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.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités