Search:
Login
Preferences
Help/Guide
About Trac
Register
Forgot your password?
Wiki
Timeline
Changelog
Browse Source
View Tickets
New Ticket
Roadmap
Builds
Sonar
Search
Context Navigation
+0
Start Page
Index
History
Editing El:Help/Validator/MapCSSTagChecker
Adjust edit area height:
8
12
16
20
24
28
32
36
40
Edit side-by-side
[[TranslatedPages(revision=41)]] Αυτός ο ελεγκτής ετικετών θεωρείται ως ο διάδοχος του αρχείου `tagchecker.cfg` και βασίζεται σε μεγάλο βαθμό στην [wikitr:/Help/Styles/MapCSSImplementation υλοποίηση MapCSS για φύλλα στυλ]. Η επίσημη επέκταση για τα αρχεία είναι `*.validator.mapcss`. Συνιστάται η εγκατάσταση του [https://marketplace.visualstudio.com/items?itemName=whammo.mapcss-syntax MapCSS Syntax Highlighter] στο VS Code για να προσθέσετε οπτική επισήμανση για τη σύνταξη του εργαλείου επικύρωσης MapCSS. Πιο σύνθετες δοκιμές επικύρωσης, οι οποίες δεν μπορούν να γίνουν με αυτήν τη σύνταξη, πραγματοποιούνται ως [source:/trunk/src/org/openstreetmap/josm/data/validation/tests Java tests]. == Παραδείγματα == Δείτε τα αρχεία `*.mapcss` στο source:/trunk/resources/data/validator/ για τους ελέγχους που περιλαμβάνονται στον πυρήνα του JOSM ή σε [wikitr:/Rules εξωτερικούς κανόνες επικύρωσης]. {{{ #!mapcss *[barrier=wire_fence] { throwWarning: tr("{0} is deprecated", "{0.tag}"); /* "{0.tag}" evaluates to "barrier=wire_fence" */ fixAdd: "barrier=fence"; /* You don't need to remove the barrier key before, it will just override with the new value */ fixAdd: "fence_type=chain_link"; assertMatch: "way barrier=wire_fence"; assertNoMatch: "way barrier=fence"; } }}} χρήση των κλάσεων: {{{ #!mapcss way[highway=~/^(motorway|trunk|primary|secondary|tertiary)$/] { set major_road; } way.major_road[!ref] { throwOther: tr("highway without {0}", "{1.key}"); /* the class ".major:road" is the 0th selector and "!ref" is the 1st selector. The output is: "highway without ref" */ assertMatch: "way highway=primary"; assertNoMatch: "way highway=primary ref=123"; } }}} == Μερικές ακόμα λεπτομέρειες == === Σύνταξη === {{{ #!mapcss selector { /* exactly one of */ throwError: "message"; throwWarning: "message"; throwOther: "message"; /* arbitrarily many of */ fixAdd: "key=val"; fixRemove: "key"; fixChangeKey: "old=>new"; fixDeleteObject: this; /* deletes the whole object! */ suggestAlternative: "any text (e.g., alternative key)"; /* user defined arguments must be prefixed by - */ -osmoseItemClassLevel: "1210/1/1"; /* assertions for unit tests */ assertMatch: "node/way/relation key1=value1 keyN=valueN"; assertNoMatch: "node/way/relation key1=value1 keyN=valueN"; /* assertions with spaces, use \"...\" around the value */ assertNoMatch: "node amenity=recycling collection_times=\"Mo-Fr 15:00\""; } }}} * Η σύνταξη των επιλογέων καθορίζεται στο [wikitr:/Help/Styles/MapCSSImplementation#Selectors MapCSSImplementation#Selectors] * Οι κανόνες επικύρωσης μπορούν να περιοριστούν σε συγκεκριμένες χώρες, δείτε [wikitr:/Help/Styles/MapCSSImplementation#Territoryselector MapCSSImplementation#Territoryselector]. * Εναλλακτικά προς τις συμβολοσειρές στη δεξιά πλευρά αυτών των εκφράσεων, μπορούν να χρησιμοποιηθούν και εκφράσεις που αξιολογούνται (δείτε [wikitr:/Help/Styles/MapCSSImplementation#Evalexpressions list+syntax]) * Η πιο χρήσιμη απ’ όλες είναι η [/doc/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.html#tr-org.openstreetmap.josm.gui.mappaint.Environment-java.lang.String...- tr()] ώστε οι συμβολοσειρές να μπορούν να μεταφραστούν (ΔΙΕΥΚΡΙΝΙΣΗ: πού πρέπει να διατηρούνται οι μεταφράσεις για μη-βασικούς κανόνες επικύρωσης;) * Εάν έχει οριστεί τουλάχιστον ένα από τα `fixAdd`/`fixRemove`/`fixChangeKey` τότε αυτές οι αλλαγές εφαρμόζονται στα αντικείμενα που ταιριάζουν με τον έλεγχο, όταν πατήσετε το κουμπί στον [wikitr:/Help/Dialog/Validator πίνακα Επικύρωσης]. * Εάν υπάρχουν ένα ή περισσότερα `suggestAlternative` αυτές οι εναλλακτικές εμφανίζονται μαζί με το μήνυμα δοκιμής * `assertMatch` και `assertNoMatch`: Μπορείτε να ορίσετε παραδείγματα τα οποία θα πρέπει (assertMatch) ή δεν θα πρέπει (assertNoMatch) να ταιριάζουν με τον χρησιμοποιούμενο επιλογέα. Επομένως, αυτή είναι μια δοκιμή για το αν ο επιλογέας λειτουργεί σωστά για το δεδομένο παράδειγμα. Κανονικά, αυτό είναι χρήσιμο μόνο για πιο σύνθετους επιλογείς και λιγότερο για απλούς επιλογείς κλειδιού-τιμής. Οι δοκιμές εκτελούνται στο πλαίσιο δοκιμών μονάδας και στο [/jenkins/job/JOSM]. Εκτελούνται επίσης για τοπικά αρχεία επικύρωσης εάν η προηγμένη επιλογή `validator.check_assert_local_rules` έχει οριστεί σε "true" στις [wikitr:/Help/Preferences/Advanced προηγμένες προτιμήσεις] (δείτε #10206). Εάν ενεργοποιήσατε αυτήν την επιλογή και η δοκιμή αποτύχει, θα λάβετε ένα μήνυμα στην έξοδο της κονσόλας που μπορεί να μοιάζει με: `ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Αναμένεται η δοκιμή '...' να ταιριάζει με τον τρόπο ...` ή `...να μην ταιριάζει...`. * Οι τοπικοί κανόνες επικύρωσης επαναφορτώνονται αυτόματα, εάν τροποποιηθούν και αποθηκευτούν από μια εξωτερική εφαρμογή. (Η αυτόματη επαναφόρτωση μπορεί να σταματήσει, εάν ένα συντακτικό σφάλμα στο αρχείο επικύρωσης παράγει μια εξαίρεση στην κονσόλα. Σε αυτήν την περίπτωση, πρέπει να επανεκκινήσετε το JOSM.) ==== Υποκατάστατα ==== * Χρησιμοποιούνται για να απλοποιήσουν τη μετάφραση και να μειώσουν τα πιθανά σφάλματα. * Τα υποκατάστατα στο μήνυμα προειδοποίησης, π.χ. `{3}` γράφονται με αύξοντες αριθμούς, ξεκινώντας από το 0. Δηλαδή: 0 1 2 3 4... Αυτοί είναι τα αναγνωριστικά των υποκατάστατων. * Μετά το μήνυμα προειδοποίησης (διαχωρισμένο με κόμμα), πρέπει να ορίσετε το περιεχόμενο των υποκατάστατων. * Πρώτα ορίζετε το περιεχόμενο του πρώτου υποκατάστατου αυτό με το αναγνωριστικό 0). Στη συνέχεια, ορίζετε το περιεχόμενο του δεύτερου υποκατάστατου (αυτό με το αναγνωριστικό 1) και ούτω καθεξής. * Πρέπει να καθορίσετε ποιον επιλογέα θέλετε να χρησιμοποιήσετε στο υποκατάστατο και αν θέλετε να χρησιμοποιήσετε το κλειδί (`{i.key}`), την τιμή (`{i.value}`) ή ολόκληρη την ετικέτα (`{i.tag}`) του επιλογέα. Η μέτρηση ξεκινά από το 0. Έτσι, `{4.value}` σημαίνει την τιμή του 5ου επιλογέα. * Οι κλάσεις και οι ψευδοκλάσεις μετράνε επίσης. * Επίσης, μπορείτε να χρησιμοποιήσετε το `{i.tag}` για επιλογείς μόνο με κλειδί. Το μήνυμα θα εμφανίζει την πραγματική τιμή του κλειδιού (δείτε #10859). * Μπορείτε να χρησιμοποιήσετε κανονικές εκφράσεις στον επιλογέα και να τις χρησιμοποιήσετε σε ένα υποκατάστατο. Το μήνυμα δεν θα εμφανίζει τον κωδικό regexp αλλά το πραγματικό κλειδί/τιμή/ετικέτα (δείτε #9782). παραδείγματα: {{{ #!mapcss *[a=b][c=d][e][f=g] { throwWarning: tr("{0} BLA {1} BLUB {2} BLIB {3}", "{1.tag}", "{0.key}", "{2.key}", "{3.value}"); } }}} Αυτό θα αξιολογηθεί ως `c=d BLA a BLUB e BLIB g` {{{ #!mapcss node:unconnected:in-downloaded-area[highway=turning_circle] { throwWarning: tr("{0} must be connected to a way", "{2.tag}"); } }}} Αυτό θα αξιολογηθεί ως `highway=turning_circle πρέπει να συνδέεται με μία γραμμή`. (`:unconnected` μετράει ως μηδενικό υποκατάστατο και το `:in-downloaded-area` μετράει ως πρώτο υποκατάστατο, επομένως το `highway=turning_circle` είναι το δεύτερο υποκατάστατο.) ==== Ομαδοποίηση ==== * Διαφορετικοί έλεγχοι μπορούν να ομαδοποιηθούν στον πίνακα του Ελεγκτή. Παράδειγμα: {{{ #!mapcss node[oneway], node[bridge], node[sidewalk], node[footway] { throwWarning: tr("{0}", "{0.tag}"); group: tr("tag on a node which should be used on a way"); } }}} αποτελέσματα σε: [[Image(Help/Validator/MapCSSTagChecker:testgroup.png,link=)]] Το ίδιο κείμενο ομαδοποίησης μπορεί να χρησιμοποιηθεί σε διαφορετικούς κανόνες, δείτε π.χ. [source:/trunk/resources/data/validator/deprecated.mapcss deprecated.mapcss] ή ακόμη και σε διαφορετικά αρχεία ελεγκτή. == Δείτε επίσης == * [wikitr:/Help/Dialog/Validator Διάλογος Επικύρωσης] * [wikitr:/Help/Preferences/Validator Προτιμήσεις Επικύρωσης] και περιγραφή των δοκιμών επικύρωσης * Το κύριο αίτημα υλοποίησης ήταν #9414. ---- Πίσω στη [wikitr:/Help Βασική Βοήθεια]
Note:
See
WikiFormatting
and
TracWiki
for help on editing wiki content.
Change information
Your email or username:
E-mail address and name can be saved in the
Preferences
Comment about this change (optional):
Note:
See
TracWiki
for help on using the wiki.