You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
IoT-For-Beginners/translations/el/3-transport/lessons/3-visualize-location-data
co-op-translator[bot] 2f4dff5e89
🌐 Update translations via Co-op Translator (#546)
3 weeks ago
..
README.md 🌐 Update translations via Co-op Translator (#546) 3 weeks ago
assignment.md 🌐 Update translations via Co-op Translator (#546) 3 weeks ago

README.md

Οπτικοποίηση δεδομένων τοποθεσίας

Μια σκιαγραφική επισκόπηση αυτού του μαθήματος

Σκίτσο από τη Nitya Narasimhan. Κάντε κλικ στην εικόνα για μεγαλύτερη έκδοση.

Αυτό το βίντεο παρέχει μια επισκόπηση του Azure Maps με IoT, μια υπηρεσία που θα καλυφθεί σε αυτό το μάθημα.

Azure Maps - Η πλατφόρμα τοποθεσίας της Microsoft Azure για επιχειρήσεις

🎥 Κάντε κλικ στην παραπάνω εικόνα για να παρακολουθήσετε το βίντεο

Ερωτηματολόγιο πριν το μάθημα

Ερωτηματολόγιο πριν το μάθημα

Εισαγωγή

Στο προηγούμενο μάθημα μάθατε πώς να λαμβάνετε δεδομένα GPS από τους αισθητήρες σας και να τα αποθηκεύετε στο cloud σε ένα δοχείο αποθήκευσης χρησιμοποιώντας serverless κώδικα. Τώρα θα ανακαλύψετε πώς να οπτικοποιήσετε αυτά τα σημεία σε έναν χάρτη Azure. Θα μάθετε πώς να δημιουργείτε έναν χάρτη σε μια ιστοσελίδα, να κατανοείτε τη μορφή δεδομένων GeoJSON και πώς να τη χρησιμοποιείτε για να σχεδιάζετε όλα τα καταγεγραμμένα σημεία GPS στον χάρτη σας.

Σε αυτό το μάθημα θα καλύψουμε:

💁 Αυτό το μάθημα θα περιλαμβάνει μια μικρή ποσότητα HTML και JavaScript. Αν θέλετε να μάθετε περισσότερα για την ανάπτυξη ιστοσελίδων χρησιμοποιώντας HTML και JavaScript, δείτε το Web development for beginners.

Τι είναι η οπτικοποίηση δεδομένων

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

Παίρνοντας ένα απλό παράδειγμα - στο έργο της φάρμας καταγράψατε μετρήσεις υγρασίας του εδάφους. Ένας πίνακας δεδομένων υγρασίας του εδάφους που καταγράφηκε κάθε ώρα για την 1η Ιουνίου 2021 μπορεί να μοιάζει με τον παρακάτω:

Ημερομηνία Μέτρηση
01/06/2021 00:00 257
01/06/2021 01:00 268
01/06/2021 02:00 295
01/06/2021 03:00 305
01/06/2021 04:00 325
01/06/2021 05:00 359
01/06/2021 06:00 398
01/06/2021 07:00 410
01/06/2021 08:00 429
01/06/2021 09:00 451
01/06/2021 10:00 460
01/06/2021 11:00 452
01/06/2021 12:00 420
01/06/2021 13:00 408
01/06/2021 14:00 431
01/06/2021 15:00 462
01/06/2021 16:00 432
01/06/2021 17:00 402
01/06/2021 18:00 387
01/06/2021 19:00 360
01/06/2021 20:00 358
01/06/2021 21:00 354
01/06/2021 22:00 356
01/06/2021 23:00 362

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

Διάγραμμα γραμμών των παραπάνω δεδομένων

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

Διάγραμμα γραμμών υγρασίας εδάφους με γραμμή στο 450

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

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

Σκεφτείτε τρόπους με τους οποίους έχετε δει δεδομένα να απεικονίζονται. Ποιοι μέθοδοι ήταν οι πιο σαφείς και σας επέτρεψαν να λάβετε αποφάσεις πιο γρήγορα;

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

Όταν εργάζεστε με δεδομένα GPS, η πιο σαφής απεικόνιση μπορεί να είναι η σχεδίαση των δεδομένων σε έναν χάρτη. Ένας χάρτης που δείχνει φορτηγά παράδοσης, για παράδειγμα, μπορεί να βοηθήσει τους εργαζόμενους σε ένα εργοστάσιο επεξεργασίας να δουν πότε θα φτάσουν τα φορτηγά. Αν αυτός ο χάρτης δείχνει περισσότερα από απλές εικόνες φορτηγών στις τρέχουσες τοποθεσίες τους, αλλά δίνει μια ιδέα για το περιεχόμενο ενός φορτηγού, τότε οι εργαζόμενοι στο εργοστάσιο μπορούν να προγραμματίσουν ανάλογα - αν δουν ένα φορτηγό ψυγείο κοντά, ξέρουν να προετοιμάσουν χώρο σε ένα ψυγείο.

Υπηρεσίες χαρτών

Η εργασία με χάρτες είναι μια ενδιαφέρουσα άσκηση, και υπάρχουν πολλές επιλογές όπως Bing Maps, Leaflet, Open Street Maps και Google Maps. Σε αυτό το μάθημα, θα μάθετε για το Azure Maps και πώς μπορούν να εμφανίσουν τα δεδομένα GPS σας.

Το λογότυπο του Azure Maps

Το Azure Maps είναι "μια συλλογή γεωχωρικών υπηρεσιών και SDK που χρησιμοποιούν φρέσκα δεδομένα χαρτογράφησης για να παρέχουν γεωγραφικό πλαίσιο σε εφαρμογές ιστού και κινητών." Οι προγραμματιστές παρέχονται με εργαλεία για τη δημιουργία όμορφων, διαδραστικών χαρτών που μπορούν να κάνουν πράγματα όπως να παρέχουν προτεινόμενες διαδρομές κυκλοφορίας, να δίνουν πληροφορίες για περιστατικά κυκλοφορίας, εσωτερική πλοήγηση, δυνατότητες αναζήτησης, πληροφορίες υψομέτρου, υπηρεσίες καιρού και πολλά άλλα.

Πειραματιστείτε με μερικά δείγματα κώδικα χαρτογράφησης

Μπορείτε να εμφανίσετε τους χάρτες ως κενό καμβά, πλακίδια, δορυφορικές εικόνες, δορυφορικές εικόνες με υπερτιθέμενους δρόμους, διάφορους τύπους χαρτών σε κλίμακα του γκρι, χάρτες με σκιασμένη ανακούφιση για να δείξετε υψόμετρο, χάρτες νυχτερινής προβολής και έναν χάρτη υψηλής αντίθεσης. Μπορείτε να λαμβάνετε ενημερώσεις σε πραγματικό χρόνο στους χάρτες σας ενσωματώνοντάς τους με το Azure Event Grid. Μπορείτε να ελέγξετε τη συμπεριφορά και την εμφάνιση των χαρτών σας ενεργοποιώντας διάφορους ελέγχους για να επιτρέψετε στον χάρτη να αντιδρά σε γεγονότα όπως pinch, drag και click. Για να ελέγξετε την εμφάνιση του χάρτη σας, μπορείτε να προσθέσετε επίπεδα που περιλαμβάνουν φυσαλίδες, γραμμές, πολύγωνα, θερμικούς χάρτες και άλλα. Ποιο στυλ χάρτη θα υλοποιήσετε εξαρτάται από την επιλογή του SDK.

Μπορείτε να αποκτήσετε πρόσβαση στις APIs του Azure Maps αξιοποιώντας το REST API, το Web SDK, ή, αν δημιουργείτε μια εφαρμογή κινητού, το Android SDK.

Σε αυτό το μάθημα, θα χρησιμοποιήσετε το Web SDK για να σχεδιάσετε έναν χάρτη και να εμφανίσετε τη διαδρομή της τοποθεσίας GPS του αισθητήρα σας.

Δημιουργία πόρου Azure Maps

Το πρώτο σας βήμα είναι να δημιουργήσετε έναν λογαριασμό Azure Maps.

Εργασία - δημιουργία πόρου Azure Maps

  1. Εκτελέστε την παρακάτω εντολή από το Terminal ή το Command Prompt για να δημιουργήσετε έναν πόρο Azure Maps στην ομάδα πόρων gps-sensor:

    az maps account create --name gps-sensor \
                           --resource-group gps-sensor \
                           --accept-tos \
                           --sku S1
    

    Αυτό θα δημιουργήσει έναν πόρο Azure Maps με το όνομα gps-sensor. Η βαθμίδα που χρησιμοποιείται είναι S1, η οποία είναι μια πληρωμένη βαθμίδα που περιλαμβάνει μια σειρά από δυνατότητες, αλλά με γενναιόδωρο αριθμό δωρεάν κλήσεων.

    💁 Για να δείτε το κόστος χρήσης του Azure Maps, δείτε τη σελίδα τιμολόγησης του Azure Maps.

  2. Θα χρειαστείτε ένα API key για τον πόρο χαρτών. Χρησιμοποιήστε την παρακάτω εντολή για να λάβετε αυτό το κλειδί:

    az maps account keys list --name gps-sensor \
                              --resource-group gps-sensor \
                              --output table
    

    Κρατήστε ένα αντίγραφο της τιμής PrimaryKey.

Εμφάνιση χάρτη σε ιστοσελίδα

Τώρα μπορείτε να κάνετε το επόμενο βήμα, που είναι να εμφανίσετε τον χάρτη σας σε μια ιστοσελίδα. Θα χρησιμοποιήσουμε μόνο ένα αρχείο html για τη μικρή σας εφαρμογή ιστού. Λάβετε υπόψη ότι σε ένα περιβάλλον παραγωγής ή ομάδας, η εφαρμογή ιστού σας πιθανότατα θα έχει περισσότερα μέρη που κινούνται!

Εργασία - εμφάνιση χάρτη σε ιστοσελίδα

  1. Δημιουργήστε ένα αρχείο με το όνομα index.html σε έναν φάκελο κάπου στον τοπικό σας υπολογιστή. Προσθέστε HTML markup για να κρατήσετε έναν χάρτη:

    <html>
    <head>
        <style>
            #myMap {
                width:100%;
                height:100%;
            }
        </style>
    </head>
    
    <body onload="init()">
        <div id="myMap"></div>
    </body>
    </html>
    

    Ο χάρτης θα φορτωθεί στο div με το όνομα myMap. Μερικά στυλ του επιτρέπουν να καλύπτει το πλάτος και το ύψος της σελίδας.

    🎓 Ένα div είναι μια ενότητα μιας ιστοσελίδας που μπορεί να ονομαστεί και να μορφοποιηθεί.

  2. Κάτω από την ετικέτα <head>, προσθέστε ένα εξωτερικό φύλλο στυλ για να ελέγξετε την εμφάνιση του χάρτη και ένα εξωτερικό script από το Web SDK για να διαχειριστεί τη συμπεριφορά του:

    <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/2/atlas.min.css" type="text/css" />
    <script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/2/atlas.min.js"></script>
    

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

  3. Κάτω από αυτό το script, προσθέστε ένα script block για να εκκινήσετε τον χάρτη.

    <script type='text/javascript'>
        function init() {
            var map = new atlas.Map('myMap', {
                center: [-122.26473, 47.73444],
                zoom: 12,
                authOptions: {
                    authType: "subscriptionKey",
                    subscriptionKey: "<subscription_key>",
    
                }
            });
        }
    </script>
    

    Αντικαταστήστε το <subscription_key> με το API key για τον λογαριασμό σας στο Azure Maps.

    Αν ανοίξετε τη σελίδα index.html σε έναν web browser, θα πρέπει να δείτε έναν χάρτη να φορτώνεται και να εστιάζει στην περιοχή του Σιάτλ.

    Ένας χάρτης που δείχνει το Σιάτλ, μια πόλη στην πολιτεία Ουάσινγκτον, ΗΠΑ

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

💁 Ένας καλύτερος τρόπος για να εργαστείτε με εφαρμογές ιστού τοπικά είναι να εγκαταστήσετε το http-server. Θα χρειαστείτε το node.js και το npm εγκατεστημένα πριν χρησιμοποιήσετε αυτό το εργαλείο. Μόλις εγκατασταθούν αυτά τα εργαλεία, μπορείτε να μεταβείτε στη θέση του αρχείου index.html και να πληκτρολογήσετε http-server. Η εφαρμογή ιστού θα ανοίξει σε έναν τοπικό web server http://127.0.0.1:8080/.

Η μορφή GeoJSON

Τώρα που έχετε τη web app σας έτοιμη με τον χάρτη να εμφανίζεται, πρέπει να εξαγάγετε δεδομένα GPS από τον λογαριασμό αποθήκευσης σας και να τα εμφανίσετε σε ένα επίπεδο δεικτών πάνω στον χάρτη. Πριν το Το Azure Maps υποστηρίζει το πρότυπο GeoJSON καθώς και ορισμένα βελτιωμένα χαρακτηριστικά, όπως η δυνατότητα σχεδίασης κύκλων και άλλων γεωμετριών.

Απεικόνιση δεδομένων GPS σε χάρτη χρησιμοποιώντας GeoJSON

Τώρα είστε έτοιμοι να χρησιμοποιήσετε τα δεδομένα από την αποθήκευση που δημιουργήσατε στο προηγούμενο μάθημα. Υπενθυμίζεται ότι αυτά αποθηκεύονται ως αρχεία σε blob storage, οπότε θα χρειαστεί να ανακτήσετε τα αρχεία και να τα αναλύσετε ώστε το Azure Maps να μπορεί να χρησιμοποιήσει τα δεδομένα.

Εργασία - διαμόρφωση αποθήκευσης για πρόσβαση από ιστοσελίδα

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

🎓 Το CORS σημαίνει "Cross-Origin Resource Sharing" και συνήθως πρέπει να ρυθμιστεί ρητά στο Azure για λόγους ασφαλείας. Αποτρέπει μη αναμενόμενες ιστοσελίδες από το να έχουν πρόσβαση στα δεδομένα σας.

  1. Εκτελέστε την παρακάτω εντολή για να ενεργοποιήσετε το CORS:

    az storage cors add --methods GET \
                        --origins "*" \
                        --services b \
                        --account-name <storage_name> \
                        --account-key <key1>
    

    Αντικαταστήστε το <storage_name> με το όνομα του λογαριασμού αποθήκευσής σας. Αντικαταστήστε το <key1> με το κλειδί του λογαριασμού αποθήκευσής σας.

    Αυτή η εντολή επιτρέπει σε οποιονδήποτε ιστότοπο (ο χαρακτήρας μπαλαντέρ * σημαίνει οποιοσδήποτε) να κάνει ένα αίτημα GET, δηλαδή να ανακτήσει δεδομένα από τον λογαριασμό αποθήκευσής σας. Η επιλογή --services b σημαίνει ότι αυτή η ρύθμιση εφαρμόζεται μόνο για blobs.

Εργασία - φόρτωση δεδομένων GPS από την αποθήκευση

  1. Αντικαταστήστε το σύνολο του περιεχομένου της συνάρτησης init με τον παρακάτω κώδικα:

    fetch("https://<storage_name>.blob.core.windows.net/gps-data/?restype=container&comp=list")
        .then(response => response.text())
        .then(str => new window.DOMParser().parseFromString(str, "text/xml"))
        .then(xml => {
            let blobList = Array.from(xml.querySelectorAll("Url"));
                blobList.forEach(async blobUrl => {
                    loadJSON(blobUrl.innerHTML)                
        });
    })
    .then( response => {
        map = new atlas.Map('myMap', {
            center: [-122.26473, 47.73444],
            zoom: 14,
            authOptions: {
                authType: "subscriptionKey",
                subscriptionKey: "<subscription_key>",
    
            }
        });
        map.events.add('ready', function () {
            var source = new atlas.source.DataSource();
            map.sources.add(source);
            map.layers.add(new atlas.layer.BubbleLayer(source));
            source.add(features);
        })
    })
    

    Αντικαταστήστε το <storage_name> με το όνομα του λογαριασμού αποθήκευσής σας. Αντικαταστήστε το <subscription_key> με το API key για τον λογαριασμό σας στο Azure Maps.

    Εδώ συμβαίνουν αρκετά πράγματα. Πρώτα, ο κώδικας ανακτά τα δεδομένα GPS από το blob container σας χρησιμοποιώντας ένα URL endpoint που δημιουργείται με βάση το όνομα του λογαριασμού αποθήκευσής σας. Αυτό το URL ανακτά από το gps-data, υποδεικνύοντας ότι ο τύπος του πόρου είναι container (restype=container), και παραθέτει πληροφορίες για όλα τα blobs. Αυτή η λίστα δεν επιστρέφει τα ίδια τα blobs, αλλά επιστρέφει ένα URL για κάθε blob που μπορεί να χρησιμοποιηθεί για τη φόρτωση των δεδομένων του blob.

    💁 Μπορείτε να εισάγετε αυτό το URL στο πρόγραμμα περιήγησής σας για να δείτε λεπτομέρειες για όλα τα blobs στο container σας. Κάθε στοιχείο θα έχει μια ιδιότητα Url που μπορείτε επίσης να φορτώσετε στο πρόγραμμα περιήγησής σας για να δείτε το περιεχόμενο του blob.

    Στη συνέχεια, ο κώδικας φορτώνει κάθε blob, καλώντας μια συνάρτηση loadJSON, η οποία θα δημιουργηθεί στη συνέχεια. Έπειτα, δημιουργεί τον έλεγχο του χάρτη και προσθέτει κώδικα στο γεγονός ready. Αυτό το γεγονός καλείται όταν ο χάρτης εμφανίζεται στην ιστοσελίδα.

    Το γεγονός ready δημιουργεί μια πηγή δεδομένων Azure Maps - ένα container που περιέχει δεδομένα GeoJSON που θα συμπληρωθούν αργότερα. Αυτή η πηγή δεδομένων χρησιμοποιείται στη συνέχεια για τη δημιουργία ενός bubble layer - δηλαδή ενός συνόλου κύκλων στον χάρτη που είναι κεντραρισμένοι σε κάθε σημείο του GeoJSON.

  2. Προσθέστε τη συνάρτηση loadJSON στο μπλοκ του script σας, κάτω από τη συνάρτηση init:

    var map, features;
    
    function loadJSON(file) {
        var xhr = new XMLHttpRequest();
        features = [];
        xhr.onreadystatechange = function () {
            if (xhr.readyState === XMLHttpRequest.DONE) {
                if (xhr.status === 200) {
                    gps = JSON.parse(xhr.responseText)
                    features.push(
                        new atlas.data.Feature(new atlas.data.Point([parseFloat(gps.gps.lon), parseFloat(gps.gps.lat)]))
                    )
                }
            }
        };
        xhr.open("GET", file, true);
        xhr.send();
    }    
    

    Αυτή η συνάρτηση καλείται από τη ρουτίνα fetch για να αναλύσει τα δεδομένα JSON και να τα μετατρέψει ώστε να διαβαστούν ως συντεταγμένες γεωγραφικού μήκους και πλάτους σε μορφή geoJSON. Αφού αναλυθούν, τα δεδομένα ορίζονται ως μέρος ενός geoJSON Feature. Ο χάρτης θα αρχικοποιηθεί και μικροί κύκλοι θα εμφανιστούν γύρω από τη διαδρομή που απεικονίζουν τα δεδομένα σας:

  3. Φορτώστε την HTML σελίδα στο πρόγραμμα περιήγησής σας. Θα φορτώσει τον χάρτη, στη συνέχεια θα φορτώσει όλα τα δεδομένα GPS από την αποθήκευση και θα τα απεικονίσει στον χάρτη.

    Χάρτης του Saint Edward State Park κοντά στο Σιάτλ, με κύκλους που δείχνουν μια διαδρομή γύρω από την άκρη του πάρκου

💁 Μπορείτε να βρείτε αυτόν τον κώδικα στον φάκελο code.


🚀 Πρόκληση

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

Κουίζ μετά το μάθημα

Κουίζ μετά το μάθημα

Ανασκόπηση & Αυτομελέτη

Το Azure Maps είναι ιδιαίτερα χρήσιμο για εργασία με συσκευές IoT.

Εργασία

Αναπτύξτε την εφαρμογή σας


Αποποίηση ευθύνης:
Αυτό το έγγραφο έχει μεταφραστεί χρησιμοποιώντας την υπηρεσία αυτόματης μετάφρασης Co-op Translator. Παρόλο που καταβάλλουμε προσπάθειες για ακρίβεια, παρακαλούμε να έχετε υπόψη ότι οι αυτοματοποιημένες μεταφράσεις ενδέχεται να περιέχουν λάθη ή ανακρίβειες. Το πρωτότυπο έγγραφο στη μητρική του γλώσσα θα πρέπει να θεωρείται η αυθεντική πηγή. Για κρίσιμες πληροφορίες, συνιστάται επαγγελματική ανθρώπινη μετάφραση. Δεν φέρουμε ευθύνη για τυχόν παρεξηγήσεις ή εσφαλμένες ερμηνείες που προκύπτουν από τη χρήση αυτής της μετάφρασης.