IT:Relazione

Le Relazioni sono raccolte strutturate di oggetti (nodi, percorsi e altre relazioni). Assieme con i nodi e i percorsi, esse costituiscono uno dei tre principali elementi del modello di OpenStreetMap.
Una relazione deve avere almeno l'attributo type=* e un gruppo di membri, cioè una lista ordinata di uno o più nodi, percorsi e / o relazioni. Il suo scopo è definire relazioni logiche o geografiche tra questi diversi oggetti (per esempio un lago e la sua isola, oppure varie strade costituenti la rotta di un bus). Il membro di una relazione può opzionalmente avere un ruolo, che descrive la funzione che tale membro svolge entro la relazione. La relazione può avere ulteriori attributi riferibili all'intera collezione nel suo complessivo (ad esempio name=*, wikidata=*, destination=*...).
Uso
La relazione è un tipo di oggetto introdotto con la versione 0.5 delle API in data 8 ottobre 2007. Le relazioni sono utilizzate per indicare una relazione logica (e di solito locale) o geografica tra oggetti. Non sono progettate per contenere elementi approssimativamente fra loro associabili ma collocati ad ampia distanza reciproca. Sarebbe inopportuno, ad esempio, creare una relazione per raggruppare "tutti i sentieri dell'Italia". Vedi Le relazioni non sono categorie.
Le relazioni più comuni e semplici contengono solo membri di tipo geometrico (nodi o percorsi). Le relazioni possono anche contenere altre relazioni "annidate", nel qual caso sono informalmente chiamate super-relazioni. Non è usuale la creazione di una relazione che contenga sia membri geometrici, sia relazioni annidate, ma di per sé non è proibito.
Per essere utile, un albero formato da relazioni annidate deve alla fine contenere qualche membro geometrico; altrimenti esso sarebbe praticamente invisibile, in quanto non collegato a niente di concreto sulla mappa. Una relazione vuota può esistere nel database, ma non è molto utile, eccetto forse come segnaposto per una successiva espansione. L'editor iD automaticamente elimina le relazioni che diventano vuote per rimozione dei membri, dato che il loro svuotamento è, nella maggior parte dei casi, una conseguenza non voluta di altre modifiche.
Dimensione
C'è un limite tecnico di 32000 elementi in una relazione, ma è consigliabile non usare più di 300 membri per relazione: più membri sono inglobati in una singola relazione, più difficile è gestirla, più facile è corromperla, più probabili sono i conflitti e, infine, più risorse sono consumate a livello di database e server. Se hai bisogno di gestire più di quelle quantità, potrebbe essere consigliabile creare varie relazioni e combinarle in una super-relazione (una buona idea sulla carta, ma il supporto software è carente).
Comunque è a volte inevitabile avere relazioni complesse. Per esempio, la relazione dei confini della Russia, la nazione più vasta del mondo, ha più di 5000 segmenti come membri esterni.
Ruolo
Il ruolo è un campo di testo opzionale che descrive la funzione svolta da un membro all'interno della relazione.
Ad esempio:
- nella relazione multipoligono,
e
innervengono utilizzati per specificare se un tracciato costituisce la parte interna o esterna di tale multipoligono;
outer - in una relazione waterway (corso d'acqua) usata per un fiume (una relazione con tutti gli attributi
waterway=riverdel fiume e eventualmente dei suoi tributari), main_stream su un percorso indica che questo tratto è il corso principale del fiume mentre side_stream è utilizzato per un ramo secondario, che si distacca e poi ritorna nel corso principale.
Tipi di relazione 
- Voce principale: Types of relation
Ci sono molti tipi di relazione:
- Relation:route è usata per descrivere percorsi di vario tipo, tra cui percorsi escursionistici e ciclabili, percorsi degli autobus, nonché l'insieme di strade con un unico nome comune (per esempio le strade provinciali, regionali, statali...);
- Relation:multipolygon è usata per definire aree più complesse, come argini o confini amministrativi;
- Relation:boundary definisce esclusivamente i confini amministrativi;
- Relation:restriction è utile per descrivere alcune restrizioni come "divieto di svolta a sinistra", "vietata l'inversione di marcia"...
Esempi
Linea Bus
Una linea di autobus potrebbe avere una relazione con type=route, route=bus oltra alle etrichette ref e operatore. Vie sulle quali i percorsi degli autobus sarebbero membri, insieme con i nodi fermata bus. Le vie dovranno avere ruoli forward o backward, a seconda se gli autobus operano nella direzione della via, o in senso opposto (il ruolo può essere anche vuoto, se la linea di autobus utilizza la via in entrambe le direzioni).
Multipoligono
I multipoligoni sono uno dei due strumenti usati per rappresentare le
aree in OpenStreetMap. Benché la maggioranza delle aree siano rappresentate come singoli
percorsi chiusi, quasi tutte le caratteristiche delle aree possono essere mappate anche usando relazioni multipoligono. This is needed when the area needs to exclude inner rings (holes), has multiple outer areas (exclaves), or uses more than ~2000 nodes.
Nella relazione multipoligono, i ruoli e
inner vengono utilizzati per specificare se una via costituisce la parte interna o esterna di quel multipoligono.
outer
In the multipolygon relation, the and
outer roles are used to specify whether a member way forms an outer or an inner part of that area.
inner
For example, for a lake with an island, you will map this as a multipolygon with 2 ways, one way (with no tags) with the role "outer" for the outer border of the lake and one way with the role "inner" for the island (which could have some tags like natural=bare_rock if the island is a rocky area).
Vedi anche
| ||||||||||||||||||