El:Στοιχεία

From OpenStreetMap Wiki
Jump to navigation Jump to search

Τα στοιχεία είναι τα βασικά συστατικά στοιχεία του εννοιολογικού μοντέλου δεδομένων για τον φυσικό κόσμο που εφαρμόζει το OpenStreetMap. Υπάρχουν τρία είδη στοιχείων:

  • Οι κόμβοι (ορίζουν σημεία στο χώρο),
  • Οι γραμμές (ορίζουν γραμμικά χαρακτηριστικά και όρια περιοχών), και
  • Οι σχέσεις (ορίζουν την διάδραση μεταξύ σε άλλα στοιχεία).

Όλα τα παραπάνω μπορούν να έχουν μια ή παραπάνω ετικέτες που σχετίζονται μαζί τους (οι οποίες περιγράφουν την σημασία του συγκερκριμένου στοιχείου).

Κόμβος node

Κύριο άρθρο: El:Κόμβος

Ένας κόμβος αναπαριστά ένα συγκεκριμένο σημείο στην επιφάνεια της γης που ορίζεται από το γεωγραφικό μήκος και πλάτος, σύμφωνα με το Παγκόσμιο Γεωδαιτικό Σύστημα 1984[1]. Κάθε κόμβος αποτελείται από τουλάχιστον έναν αριθμό id και μια σειρά συντεταγμένων.

Οι κόμβουν μπορούν για να ορίσουν μεμονωμένα σημειακά χαρακτηριστικά. Για παράδειγμα, ένας κόμβος μπορεί να αναπαριστά ένα παγκάκι ή ένα πηγάδι.

Οι κόμβοι μπορούν επίσης να χρησιμοποιηθούν για να ορίσουν το σχήμα μιας γραμμής. Όταν χρησιμοποιούνται ως σημεία σε μια γραμμή, οι κόμβοι συνήθως δεν έχουν ετικέτες, αλλά κάποιοι μπορεί να έχουν. Για παράδειγμα, η ετικέτα highway=traffic_signals μαρκάρει φανάρια σε ένα δρόμο, και η ετικέτα power=tower αναπαριστά έναν πυλώνα σε μια γραμμή υψηλής τάσης.

Ένας κόμβος μπορεί να συμπεριλαμβάνεται ως μέλος μιας σχέσης. Η σχέση μπορεί επίσης να δείχνει το ρόλο ενός μέλους: δηλαδή, η λειτουργία του κόμβου σε αυτό το συγκεκριμένο σετ στοιχείων δεδομένων.

Γραμμή way closed way area

Κύριο άρθρο: El:Γραμμή

Μια γραμμή είναι μια ταξινομημένη λίστα 1 (!) εως 2.000 κόμβων που ορίζουν μια  πολυγραμμή. Οι γραμμές χρησιμοποιούνται για να αναπαριστήσουν γραμμικά χαρακτηριστικά όπως ποταμούς ή δρόμους. way

Οι γραμμές μπορούν επίσης να αναπαριστούν τα όρια περιοχών, όπως κτηρίων και δασών. Σε αυτή τη περίπτωση, ο πρώτος και ο τελευταίος κόμβος της γραμμής είναι ο ίδιος. Αυτό ονομάζεται «κλειστή γραμμή». closed way

Να σημειωθεί ότι οι κλειστές γραμμές ορισμένες φορές αναπαριστούν «κύκλους», όπως κυκλικούς κόμβους σε δρόμους, παρά συμπαγείς περιοχές. Αυτό συνήθως συμπεραίνεται από τις ετικέτες της γραμμής, Για παράδειγμα, το landuse=* δεν μπορεί ποτέ να αφορά ένα γραμμικό χαρακτηριστικό. Παρ' όλα αυτά, ορισμένα πραγματικά αντικείμενα (όπως μια προβλήτα man_made=pier) μπορούν να έχουν και γραμμική closed way και περιοχική αναπαράσταση area, και η ετικέτα area=yes ή area=no μπορεί να χρησιμοποιηθεί για να αποφευχθούν ασάφειες και παρερμηνείες. Δείτε επίσης: El:Γραμμή#Διαφορές_ανάμεσα_στην_απόδοση_χαρακτηριστικών_γραμμικά_και_με_περιοχή.

Περιοχές με τρύπες, ή με όριο με παραπάνω από 2.000 κόμβους, δεν μπορούν να αναπαρσταθούν με μία μοναδική γραμμή. Αντ' αυτού, το χαρακτηριστικό θα χρειαστεί μια πιο περίπλοκη μορφή δεδομένων, τη σχέση πολυπολύγωνου.

Σχέση relation

Κύριο άρθρο: El:Σχέση

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

  • Μια σχέση διαδρομής, που απαριθμεί τις γραμμές που συνιστούν έναν αριθμημένο αυτοκινητόδρομο, ή μια ποδηλατική διαδρομή, ή μια γραμμή λεωφορείου.
  • Έναν περιορισμό στροφής που λέει πότε δεν μπορείτε να στρίψετε από μία γραμμή σε μια άλλη γραμμή.
  • Ένα πολυπολύγωνο που περιγράφει μια περιοχή (της οποίας το όριο είναι η εξωτερική γραμμή) με τρύπες (οι εσωτερικές γραμμές).

Η σημασία της σχέσης ορίζεται από τις ετικέτες της. Μια σχέση πρέπει να έχει τουλάχιστον την ετικέτα τύπου. Οι άλλες ετικέτες οφείλουν να ερμηνευθούν με βάση την ετικέτα τύπου.

Η σχέση είναι κυρίως μια ταξινομημένη λίστα κόμβων, γραμμών και άλλων σχέσεων. Αυτά τα αντικείμενα είναι γνωστά ως τα μέλη της σχέσης.

Κάθε στοιχείο προαιρετικά έχει έναν ρόλο μέσα στη σχέση. Παραδείγματος χάριν, ένας περιορισιμός στροφής θα είχε μέλη με ρόλους "from" (από) και "to" (προς), περιγράφοντας την συγκεκριμένη στροφή που είναι απαγορευμένη.

Ανάλογα με τον τύπο της σχέσης, ένα συγκεκριμένο στοιχείο μπορεί να εμφανίζεται παραπάνω από μία φορά ως μέλος.

Ετικέτα tag

Κύριο άρθρο: El:Ετικέτα

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

Μια ετικέτα αποτελείται από δύο πεδία ελεύθερου κειμένου· ένα «κλειδί» (key) και μια «τιμή» (value). Το καθένα από αυτά είναι μια ακολουθία έως 255 χαρακτήρων Unicode. Για παράδειγμα, το highway=residential ορίζει μια γραμμή ως έναν δρόμο που έχει ως κύριο σκοπό την πρόσβαση σε κατοικίες. Ένα στοιχείο δεν μπορεί να έχει δύο ετικέτες με το ίδιο κλειδί· τα κλειδιά πρέπει να είναι μοναδικά. Παραδείγματος χάριν, δεν είναι δυνατό να υπάρχει ένα στοιχείο ταγκαρισμένο ως amenity=restaurant και ως amenity=bar.

Δεν υπάρχει καθορισμένο λεξικό ετικετών, αλλά υπάρχουν πολλές συμβάσεις που τεκμηριώνονται σε αυτό το wiki (ξεκινώντας με την σελίδα χαρακτηριστικών χάρτη). Η χρήση ετικετών μπορεί να μετρηθεί με την εφαρμογή Taginfo. Αν υπάρχει πάνω από μία μέθοδο για να ταγκαριστεί ένα χαρακτηριστικό, είναι μάλλον καλύτερο να χρησιμοποιηθεί η πιο κοινή μέθοδος.

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

Κοινές ιδιότητες

Εντός της βάσης δεδομένων OSM, αποθηκεύουμε αυτές τις ιδιότητες για τους κόμβους, τις γραμμές και τις σχέσεις. Οι εφαρμογές ενδεχομένως να μην χρειάζονται να τις χρησιμοποιήσουν όλες, και κάποιες εξαγωγές τρίτων από δεδομένα του OSM ενδέχεται να μην τις αναπαράγουν γενικά.

Όνομα Τιμή Περιγραφή
id ακέραιος (64-bit) Χρησιμοποιείται για την ταυτοποίηση του στοιχείου. Κάθε τύπος στοιχείου έχει το δικό του χώρο ID, οπότε μπορεί να υπάρχει ένας κόμβος με id=100 και μια γραμμή με id=100, που είναι απίθανο να σχετίζονται ή να βρίσκονται γεωγραφικά κοντά.
Χρησιμοποιούνται θετικές (>0) τιμές για όλα τα υπάρχοντα στοιχεία (και παραμένουν εκχωρημένα όταν αλλάζουν ή διαγράφονται)· οι αρνητικές τιμές (<0) είναι δεσμευμένες (το πεδίο εφαρμογής τους περιορίζεται στο τρέχον σύνολο αλλαγών και δεν αποθηκεύονται ποτέ στη βάση δεδομένων) και χρησιμοποιούνται μόνο κατά την αποστολή δεδομένων στη βάση δεδομένων OSM για την αναγνώριση νέων αντικειμένων για δημιουργία και την αναφορά τους σε άλλα δημιουργημένα ή τροποποιημένα αντικείμενα (ο διακομιστής θα αντικαταστήσει αυτά τα προσωρινά αναγνωριστικά που αποστέλλονται από την εφαρμογή επεξεργασίας, εκχωρώντας ένα κανονικό, θετικό αναγνωριστικό για κάθε δημιουργημένο αντικείμενο, και θα επιστρέψει μια αντιστοίχιση από τα αρνητικά αναγνωριστικά που χρησιμοποιήθηκαν στα θετικά αναγνωριστικά που τους εκχωρήθηκαν).
user ακολουθία χαρακτήρων Το όνομα του χρήστη που τροποποίησε τελευταία φορά το αντικείμενο (μονάχα πληροφοριακή τιμή, και μπορεί να είναι κενή). Ένας χρήστης μπορεί να αλλάξει το όνομα του ανά πάσα στιγμή (τα υπάρχοντα στοιχεία θα αντικατοπτρίζουν το νέο όνομα χρήστη χωρίς να χρειάζεται αλλαγή έκδοσης).
uid ακέραιος Το αριθμητικό αναγνωριστικό του χρήστη που τροποποίησε τελευταία φορά το αντικείμενο. Τα αναγνωριστικά χρήστη δεν αλλάζουν ποτέ.
timestamp Πρότυπες μορφές ημερομηνίας και ώρας του W3C. Η ώρα της τελευταίας αλλαγής (π.χ. "2016-12-31T23:59:59Z"), χωρίς κλάσματα του δευτερολέπτου.
visible "true" (αληθές) ή "false" (ψευδές) Αν το αντικείμενο έχει διαγραφεί ή όχι από τη βάση δεδομένων· αν η τιμή είναι visible="false" τότε το αντικείμενο θα πρέπει να επιστρέφεται μόνο από κλήσεις ιστορικού.
version ακέραιος Η έκδοση επεξεργασίας του αντικειμένου. Τα νεότευκτα αντικείμενα ξεκινούν στην έκδοση 1 και η τιμή αυξάνεται από το διακομιστή όταν ένας πελάτης μεταφορτώνει μια νέα έκδοση του αντικειμένου. Ο διακομιστής θα απορρίψει μια νέα έκδοση ενός αντικειμένου εάν η έκδοση που αποστέλλεται από τον πελάτη δεν ταιριάζει με την τρέχουσα έκδοση του αντικειμένου στη βάση δεδομένων.
changeset ακέραιος Ο αριθμός του συνόλου αλλαγών στο οποίο το αντικείμενο δημιουργήθηκε ή ενημερώθηκε (η υποστήριξη τιμών 64-bit συνιστάται σε εφαρμογές για λόγους συμβατότητας με τη μακροπρόθεσμη εξέλιξη της βάσης δεδομένων του OSM, αλλά οι εφαρμογές που αναζητούν μόνο δεδομένα χωρίς να τα ενημερώνουν μπορούν να αγνοήσουν αυτό το πληροφοριακό χαρακτηριστικό).

Φυσικά, επιπρόσθετα, αποθηκεύουμε τις ετικέτες, καθώς και ένα πλήρες ιστορικό επεξεργασίας κάθε στοιχείου.

Ιστορικά

Ιστορικά υπήρχε άλλος ένας τύπος στοιχείο, τα:

  • Τμήματα (συνδέουν δύο κόμβους και δημιουργούν μια γραμμή).

Προσοχή XML και σημειώσεις σχετικά με την ονοματολογία

Κύριο άρθρο: El:OSM XML

Η παρούσα τεκμηρίωση απευθύνεται σε χρήστες εργαλείων υψηλού επιπέδου OSM, όπως οι επεξεργαστές, και δεν χρησιμεύει ως πρότυπο δεδομένων χαμηλού επιπέδου. Οι χρήστες που αναζητούν ένα πρότυπο χαμηλού επιπέδου θα πρέπει να ερμηνεύσουν την τεκμηρίωση για να την κατανοήσουν με σαφήνεια και θα πρέπει να γνωρίζουν ότι περιέχει αποκλίσεις από το πρότυπο XML.

Στοιχεία

Το σύνολο των στοιχείων στο OSM XML που αναφέρονται ως στοιχεία στην τεκμηρίωση είναι ένα υποσύνολο των πραγματικών στοιχείων XML που βρίσκονται στα δεδομένα, δηλαδή ο όρος στοιχείο στο XML και ο όρος στοιχείο στο OSM XML δεν είναι συνώνυμα.

Τα στοιχεία στα δεδομένα OSM ορίζονται ως ένα από τα node, way, και relation. Τα στοιχεία XML tag, nd και member δεν αναφέρονται ως στοιχεία στο OSM XML, αλλά είναι πράγματι στοιχεία XML.

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

Ids

Οι χρήστες των εργαλείων XML θα πρέπει επίσης να γνωρίζουν ότι οι κόμβοι, οι γραμμές και οι σχέσεις μοιράζονται τον ίδιο χώρο αναγνωριστικών αντικειμένων. Οποιοδήποτε εργαλείο που αναφέρεται σε ένα αντικείμενο OSM αποκλειστικά με το id του θα αντιμετωπίσει απροσδιόριστη συμπεριφορά (π.χ. Document.getElementById()). Τα αντικείμενα OSM πρέπει πάντα να αναφέρονται τόσο με τα αναγνωριστικά των αντικειμένων τους όσο και με τον αντίστοιχο τύπο του αντικειμένου τους (κόμβος, γραμμή, σχέση).