El:Σχέση

From OpenStreetMap Wiki
(Redirected from El:Relation)
Jump to navigation Jump to search
Osm element relation.svg

Οι σχέσεις κατασκευάζονται από συλλογές αντικειμένων - κόμβων, γραμμών, και άλλων σχέσεων. Μαζί με τους κόμβους και τις γραμμές, είναι ένα από τα τρια θεμελιώδη στοιχεία του μοντέλου δεδομένων του OpenStreetMap.

Ένα στοιχείο σχέσης, πρέπει τουλάχιστον να έχει ετικέτα type=*, και μια ομάδα μελών που είναι μια ταξινομημένη λίστα ενός ή παραπάνω κόμβων, γραμμών ή/και σχέσεις. Χρησιμοποιείται για τον ορισμό λογικών ή γεωγραφικών σχέσεων μεταξύ διαφορετικών αντικειμένων (για παράδειγμα, μεταξύ μιας λίμνης και του νησιού της, ή διαφόρων οδών που δημιουργούν μια διαδρομή λεωφορείου). Ένα μέλος σχέσης μπορεί προαιρετικά να έχει ρόλο, ο οποίος περιγράφει την λειτουργία που έχει μέσα στην σχέση.

As of March 2024, το OpenStreetMap περιέχει πάνω από 12 εκατομμύρια σχέσεις.

information sign

Στις σελίδες περιγραφής ετικετών, τα πολυ-πολύγωνα αντιμετωπίζονται ως περιοχές area παρά σαν σχέσεις relation, καθώς οι ίδιες ετικέτες αφορούν τόσο τις κλειστές γραμμές όσο και τα πολυ-πολύγωνα. Δείτε τις συχνές ερωτήσεις.

Χρήση

Οι σχέσεις χρησιμοποιούνται για την απόδοση λογικών (και συνήθως τοπικών) ή γεωγραφικών σχέσεων ανάμεσα σε αντικείμενα.

Δεν έχουν σχεδιαστεί για να περιέχουν χαλαρά συνδεδεμένα αλλά διασκορπισμένα αντικείμενα. Θα ήταν ακατάλληλο, για παράδειγμα, να χρησιμοποιηθεί μια σχέση για την ομαδοποίηση «όλων των μονοπατιών της Αγγλίας». Βλέπε Οι σχέσεις δεν είναι κατηγορίες.

Οι πιο κοινές, απλές σχέσεις περιέχουν μόνο μέλη γεωμετρικών τύπων (κόμβων ή γραμμών). Οι σχέσεις μπορεί επίσης να περιέχουν άλλες (θυγατρικές) σχέσεις, και σε αυτή τη περίπτωση λέγονται ανεπίσημα «υπέρ-σχέσεις». Είναι ασυνήθιστο για μια σχέση να έχει και γεωμετρικά μέλη και θυγατρικές σχέσεις, αλλά δεν είναι απαγορευτικό.

Για να είναι χρήσιμο, ένα δέντρο σχέσεων πρέπει κάποια στιγμή να περιέχει γεωμετρικά μέλη· αλλιώς, θα ήταν ουσιαστικά αόρατο, καθώς δεν θα συνδέονταν σε οτιδήποτε στέρεο στο χάρτη. Μια άδεια σχέση επιτρέπεται να υπάρχει στην βάση δεδομένων, αλλά δεν είναι ιδιαίτερα χρήσιμη, εκτός από ενδεχομένως An empty relation is permitted to exist in the database, but it is not very useful, εκτός ίσως από μια θέση για μια μελλοντική επέκταση. Ο επεξεργαστής iD διαγράφει αυτόματα τις κενές σχέσεις που προκύπτουν από την αφαίρεση μελών, καθώς στις περισσότερες περιπτώσεις είναι ακούσιες.

Μέγεθος

Υπάρχει επίσης ένα τεχνικό όριο 32.000 στοιχέιων σε μια σχέση. Συνιστάται να μην χρησιμοποιείτε περισσότερα από περίπου 300nbsp;μέλη ανά σχέση: όσο πιο πολλά μέλη στουμπώνονται σε μια σχέση, τόσο λιγότερα διαχειρίσιμη είναι, τόσο πιο εύκολα χαλάει, τόσο πιο εύκολα προκύπτουν διενέξεις και τόσες περισσότεροι πόροι καταναλώνονται στη βάση δεδομένων και το διακομιστή. Αν πρέπει να διαχειριστείτε πάνω από αυτό τον αριθμό, κάποιοι προτείνουν την δημιουργία πολλών σχέσεων και τον συνδυασμό τους σε μία υπέρ-σχέση (μια καλή ιδέα θεωρητικά, αλλά η υποστήριξη σε λογισμικό δεν είναι καλή).

Παρόλα αυτά, η ύπαρξη μεγάλων σχέσεων είναι ορισμένες φορές αναπόφευκτη. Παραδείγματος χάριν, η σχέση συνόρου για την Ρωσία, τη μεγαλύτερη χώρα του κόσμου, έχει πάνω από 4500 γραμμές ως εξωτερικά μέλη.

Ρόλοι Osm element role.svg

Ο ρόλος είναι ενας προαιρετικό πεδίο κειμένο που περιγράφει τη λειτουργία ενός μέλους στη σχέση.

Για παράδειγμα, σε μια σχέση πολυ-πολύγωνου, ο ρόλος Role outer και ο ρόλος Role inner χρησιμοποιούνται για να προσδιοριστεί αν πρέπει μια γραμμή να σχηματίζει το εξωτερικό ή το εσωτερικό μέρος αυτού του πολυ-πολυγώνου.

Για μια σχέση υδάτινης διαδρομής ενός ποταμού (μια σχέση με όλες τα waterway=river του ποταμού και προαιρετικά των παραποτάμων του), ο ρόλος main_stream σε μια γραμμή υποδεικνύει ότι πρόκειται για το κύριο μέρος του ποταμού ενώ ο ρόλος side_stream είναι για κλάδο που ξανασυναντάται με την κύρια διαδρομή.

Παραδείγματα σχέσεων relation

Πολυ-πολύγωνο

Τα πολυ-πολύγωνα είναι μια από τις δύο μεθόδους για να αποδοθούν οι area περιοχές στο OpenStreetMap. Ενώ οι περισσότερες περιοχές αποδίδονται με μια μοναδική closed way κλειστή γραμμή, σχεδόν όλες τα χαρακτηριστικά με στοιχεία περιοχής, μπορούν επίσης να αποδοθούν με σχέσεις πολύ-πολυγώνων. Αυτό είναι απαραίτητο όταν η περιοχή πρέπει να αποκλείσει εσωτερικούς δακτύλιους (τρύπες), έχει πολλές εξωτερικές περιοχές (θύλακες), ή χρησιμοποιεί πάνω από ~2000 κόμβους.

Στη σχέση πολυ-πολύγωνου, οι ρόλοι Role outer και Role inner χρησιμοποιούνται για να προσδιοριστεί αν μια γραμμή-μέλος αποτελεί τμήμα της εξωτερικής ή της εσωτερικής περιμέτρου της περιοχής.

Για παράδειγμα, για μια λίμνη με νησί, θα χαρτογραφηθεί ως πολύ-πολύγωνο με 2 γραμμές, μια γραμμή (χωρίς ετικέτες) με τον ρόλο "outer" για το εξωτερικό όριο της λίμνης και μια γραμμή με τον ρόλο "inner" για το νησί (η οποία θα μπορούσε να έχει ετικέτες όπως natural=bare_rock αν το νησί είναι βραχώδες).

Γραμμή λεωφορείου

Κάθε παραλλαγή στο δρομολόγιο μιας γραμμής, αναπαριστάται από μια σχέση με type=route, route=bus και ορισμένες προτεινόμενες ετικέτες όπως name=*, ref=*, from=*, to=* και operator=*.

Τα πρώτα μέλη μιας σχέσης διαδρομής είναι οι κόμβοι που αντιπροσωπεύουν τις στάσεις με τον ρόλο 'stop'. Αυτές ταξινομούνται με τη σειρά που ταξιδεύει μέσω αυτών το όχημα. Μετά προστίθενται οι γραμμές που θα σχηματίσουν μια ταξινομημένη σειρά μαζί με τους κόμβους στάσης. Οι γραμμές δεν έχουν ρόλους.

Άλλα παραδείγματα

Εργαλεία

Δρομολόγηση σε σχέσεις

Τα OSRM και Valhalla μπορούν να χρησιμοποιήσουν ορισμένες σχέσεις διαδρομών για να επηρεάσουν τις οδηγίες καθοδήγησης όταν μια διαδρομή φαίνεται να αναπαριστά και τις δύο κατευθύνσεις.

Για παράδειγμα, ορισμένοι δρομολογητές ποδηλασίας προτιμούν να δρομολογούν σε δρόμους με υπάρχουσα ποδηλατική διαδρομή (ως δείκτης ποδηλατικής χρησιμότητας). Μια εφαορμογή μπορεί να ακολουθεί μια σχέση διαδρομής pilgrimage=* ή, γενικότερα, να προσπαθεί να δρομολογεί στον μικρότερα δυνατό αριθμό αριθμημένων οδικών διαδρομών.


OSM XML

Κύριο άρθρο: El:OSM XML
 <relation id="13092746" visible="true" version="7" changeset="118825758" timestamp="2022-03-23T15:05:48Z" user="" uid="">
  <member type="node" ref="5690770815" role="stop"/>
  <member type="node" ref="5751940550" role="stop"/>
  ...
  <member type="node" ref="1764649495" role="stop"/>
  <member type="way" ref="96562914" role=""/>
  ...
  <member type="way" ref="928474550" role=""/>
  <tag k="from" v="Encre"/>
  <tag k="name" v="9-Montagnes de Guyane"/>
  <tag k="network" v="Agglo'bus"/>
  <tag k="not:network:wikidata" v="Q3537943"/>
  <tag k="operator" v="CACL"/>
  <tag k="ref" v="9"/>
  <tag k="route" v="bus"/>
  <tag k="source" v="https://www.cacl-guyane.fr/wp-content/uploads/2021/01/PLAN-RESEAU-URBAIN-AGGLO-BUS-1.pdf"/>
  <tag k="to" v="Lycée Balata"/>
  <tag k="type" v="route"/>
  <tag k="website" v="https://www.cacl-guyane.fr/lagglo-au-quotidien/se-deplacer/transport-urbain-2/"/>
 </relation>

Δείτε επίσης