IT:Relazione

From OpenStreetMap Wiki
(Redirected from IT:Relation)
Jump to navigation Jump to search

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=*...).

information icon

Nelle pagine di descrizione degli attributi, i multipoligoni sono trattati come aree area e non come relazioni relation, dato che gli stessi attributi si applicano sia alle linee chiuse, sia ai multipoligoni. Vedi FAQ.

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, role inner e role outer vengono utilizzati per specificare se un tracciato costituisce la parte interna o esterna di tale multipoligono;
  • in una relazione waterway (corso d'acqua) usata per un fiume (una relazione con tutti gli attributi waterway=river del 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 di autobus

Ogni diramazione di una linea di autobus è rappresentabile da una relazione con type=route, route=bus e alcuni attributi raccomandati come name=*, ref=*, from=*, to=* and operator=*. I primi membri nella relazione type=route sono i nodi rappresentanti le fermate, con il ruolo "stop"; tali nodi sono ordinati in base alla direzione in cui i veicoli li percorrono.


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


Then the ways are added and will form an ordered sequence along the stop nodes. The ways don't get roles.

Multipoligono

I multipoligoni sono uno dei due strumenti usati per rappresentare le area aree in OpenStreetMap. Benché la maggioranza delle aree siano rappresentate come singoli closed way percorsi chiusi, quasi tutte le caratteristiche delle aree possono essere mappate anche usando relazioni multipoligono. Queste ultime diventano obbligatorie quando è necessario escludere porzioni interne (enclavi), includere multiple aree disgiunte (exclavi) o usare più di 2000 nodi.

Nella relazione multipoligono i ruoli role inner e role outer sono utilizzati per specificare se un percorso costituisce il perimetro interno o esterno di quel multipoligono.

Nell'esempio di un lago con un'isola, questi elementi sono mappati come multipoligono con 2 percorsi: un percorso (senza attributi) con il ruolo "outer" per il perimetro esterno del lago e un percorso con il ruolo "inner" per l'isola (percorso che può avere alcuni attributi come, per esempio, natural=bare_rock se l'isola ha una superficie rocciosa).

Vedi anche