GeoJSON (.geojson)
IETF ΤυπικόΤο GeoJSON είναι συνηθισμένο στους διαδικτυακούς χάρτες, αλλά η υποστήριξη διαφέρει. Το GitHub εμφανίζει συμβατά αρχεία με όρια· το RFC 7946 ορίζει πρώτα γεωγραφικό μήκος και μετά πλάτος.
Μετατροπή GEOJSON σε KML
Δωρεάν μετατροπέας από GEOJSON σε KML εντός του προγράμματος περιήγησης. Μετατρέψτε αρχεία άμεσα στη συσκευή σας.
Επιθεώρηση & Μεταδεδομένα
Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία GeoJSON ελέγχοντας την αρχική δυαδική ακολουθία byte:
Υπογραφή κεφαλίδας σε επίπεδο byte (Magic Bytes)
Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία GeoJSON ελέγχοντας την αρχική δυαδική ακολουθία byte:
ΔΕΚΑΕΞΑΔΙΚΗ ΥΠΟΓΡΑΦΗ (OFFSET 0):
7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65ΑΝΑΠΑΡΑΣΤΑΣΗ ASCII: {\n "type": "Feature
Τυποποίηση: IETF RFC 7946
Τεχνικές Προδιαγραφές
| Αρχιτεκτονική Περιέκτη | Έγγραφο JSON συμβατό με το RFC 7946 που αναπαριστά γεωγραφικά Features, FeatureCollections και Geometries |
| Συμπίεση | Κείμενο χωρίς συμπίεση (συμπιέζεται εύκολα μέσω HTTP με Gzip ή Brotli) |
| Σειρά byte (endianness) | Ροή κειμένου UTF-8 |
| Χρωματικοί Χώροι | N/A (Geographic Data) |
| Κανάλια & Δομή | Points, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections και προσαρμοσμένες ιδιότητες |
| Μέγιστες Διαστάσεις | Χώρος συντεταγμένων World Geodetic System 1984 (WGS 84): γεωγραφικό μήκος (-180 έως +180), γεωγραφικό πλάτος (-90 έως +90) |
| Διαφάνεια | None |
| Ροή δεδομένων και προοδευτική φόρτωση | Το GeoJSON οριοθετημένο με γραμμές (GeoJSONL / GeoJSONSeq) επιτρέπει συνεχή μετάδοση εκατομμυρίων χαρακτηριστικών |
Τεχνικός Πίνακας Σύγκρισης: GeoJSON έναντι Ανταγωνιστών
| Τεχνικό χαρακτηριστικό | GeoJSON (Τρέχον) | KML | GPX | SHP |
|---|---|---|---|---|
| Υιοθέτηση Web Mapping | Ευρέως χρησιμοποιούμενο στη χαρτογράφηση ιστού· η υποστήριξη διαφέρει ανά εφαρμογή | Προεπιλογή Google Earth | Προεπιλογή συσκευών GPS και fitness | Παλαιό πρότυπο desktop GIS |
| Σειρά Συντεταγμένων | [Γεωγραφικό Μήκος, Γεωγραφικό Πλάτος] (X, Y) | Γεωγραφικό Μήκος, Γεωγραφικό Πλάτος, Υψόμετρο | Γεωγραφικό Πλάτος, Γεωγραφικό Μήκος | Συντεταγμένες X, Y |
| Στυλ Σύνταξης | Καθαρά ζεύγη κλειδιού-τιμής JSON | Πολύλογες ετικέτες XML (<kml>) | Πολύλογες ετικέτες XML (<gpx>) | Δυαδικά αρχεία πολλαπλών αρχείων (.shp, .shx, .dbf) |
| Σχήμα Ιδιοτήτων | Αυθαίρετο αντικείμενο ιδιοτήτων JSON | Ετικέτες σχήματος ExtendedData | Σταθερές ετικέτες σχήματος GPX | Σταθερές στήλες dBase IV (.dbf) |
Συνήθεις τρόποι καταστροφής δεδομένων και οδηγός ανάκτησης δεκαεξαδικών δεδομένων
Τα σημεία του χάρτη εμφανίζονται στον ωκεανό κοντά στην Ανταρκτική αντί για την πραγματική τους τοποθεσία.
Βασική Αιτία: Οι τιμές γεωγραφικού πλάτους και μήκους αντιστράφηκαν τυχαία στον πίνακα συντεταγμένων.
Ανάκτηση: Ανταλλάξτε τις θέσεις συντεταγμένων [lon, lat] χρησιμοποιώντας το File2File.app GeoJSON Converter.
Ανάλυση ασφάλειας και διανύσματα επίθεσης στον αναλυτή
Οι ιδιότητες GeoJSON μπορούν να περιέχουν αυθαίρετες εισόδους χρηστών που πρέπει να απολυμαίνονται πριν από την απόδοση σε αναδυόμενα παράθυρα χάρτη για την αποτροπή XSS.
Γνωστά διανύσματα επίθεσης
- Cross-site scripting (XSS) μέσω μη διαφεύγουσας HTML σε ιδιότητες χαρακτηριστικών GeoJSON που αποδίδονται σε tooltips χάρτη.
- Άρνηση υπηρεσίας μέσω βαθιά ένθετων GeometryCollections ή πολυγώνων εκατομμυρίων κορυφών.
- Server-Side Request Forgery μέσω απομακρυσμένης φόρτωσης χαρακτηριστικών GeoJSON.
Βέλτιστες αμυντικές πρακτικές: Καθαρίστε όλες τις συμβολοσειρές κειμένου των ιδιοτήτων με το DOMPurify πριν τις εισαγάγετε σε αναδυόμενα παράθυρα χαρτών.
Ιστορική Αναδρομή & Ορόσημα
Κύρια Πλεονεκτήματα
- Εγγενές πρότυπο ιστού: αντιστοιχίζεται απευθείας σε αντικείμενα JavaScript σε βιβλιοθήκες χαρτογράφησης περιηγητή (Mapbox GL JS, Leaflet).
- Η ευανάγνωστη από τον άνθρωπο δομή JSON επιτρέπει την αβίαστη προγραμματική δημιουργία, φιλτράρισμα και αποσφαλμάτωση.
- Αυθαίρετο σχήμα ιδιοτήτων: επισύναψη οποιωνδήποτε προσαρμοσμένων μεταδεδομένων (πληθυσμός, όνομα, ταχύτητα, έσοδα) απευθείας σε γεωμετρικά σχήματα.
Τεχνικοί Περιορισμοί & Μειονεκτήματα
- Πολυλογία κειμένου: αποθηκεύει συντεταγμένες κινητής υποδιαστολής ως επαναλαμβανόμενα ψηφία ASCII, οδηγώντας σε μεγαλύτερα μεγέθη αρχείων από τα δυαδικά Shapefiles ή FlatGeobuf.
- Το RFC 7946 ορίζει αυστηρά τη σειρά [Γεωγραφικό Μήκος, Γεωγραφικό Πλάτος] (Longitude, Latitude), η οποία συχνά μπερδεύει τους προγραμματιστές που έχουν συνηθίσει το «Lat/Long».
- Τα μεγάλα πολύγωνα με εκατομμύρια κορυφές μπορούν να προκαλέσουν επιβράδυνση της απόδοσης DOM του προγράμματος περιήγησης ιστού.
Ενδιαφέροντα Τεχνικά Στοιχεία
- Το επίσημο πρότυπο GeoJSON ταξινομεί τις συντεταγμένες ως [Γεωγραφικό Μήκος, Γεωγραφικό Πλάτος] (καρτεσιανή σειρά X, Y), η οποία είναι ακριβώς το αντίθετο από τον τρόπο που μιλούν οι άνθρωποι («Γεωγραφικό Πλάτος, Γεωγραφικό Μήκος»).
- Το GeoJSON είναι συνηθισμένο στους διαδικτυακούς χάρτες, αλλά η υποστήριξη διαφέρει. Το GitHub εμφανίζει συμβατά αρχεία με όρια· το RFC 7946 ορίζει πρώτα γεωγραφικό μήκος και μετά πλάτος.
- Το RFC 7946 ορίζει ότι τα όρια των πολυγώνων πρέπει να ακολουθούν τον «κανόνα του δεξιού χεριού»: τα εξωτερικά όρια πρέπει να τυλίγονται αριστερόστροφα.
Συχνές Τεχνικές Ερωτήσεις
Γιατί οι συντεταγμένες μου GeoJSON είναι ταξινομημένες ως [longitude, latitude] αντί για [latitude, longitude];
Το GeoJSON είναι συνηθισμένο στους διαδικτυακούς χάρτες, αλλά η υποστήριξη διαφέρει. Το GitHub εμφανίζει συμβατά αρχεία με όρια· το RFC 7946 ορίζει πρώτα γεωγραφικό μήκος και μετά πλάτος.
Πώς μπορώ να μετατρέψω KML ή Shapefile σε GeoJSON;
Μπορείτε να μετατρέψετε αρχεία Google Earth KML ή Esri Shapefiles σε καθαρό GeoJSON έτοιμο για τον ιστό σε λίγα δευτερόλεπτα χρησιμοποιώντας το File2File.app απευθείας στο πρόγραμμα περιήγησής σας.
Ποια είναι η διαφορά μεταξύ GeoJSON και Shapefile;
Τα Shapefile εξακολουθούν να χρησιμοποιούνται ευρέως για ανταλλαγή δεδομένων και υποστηρίζονται από λογισμικό GIS, αλλά η δομή πολλών αρχείων και οι περιορισμοί στα γνωρίσματα μπορεί να καθιστούν το GeoJSON ή μια γεωβάση δεδομένων καταλληλότερα για ορισμένες ροές εργασίας.
Σχετικά ζεύγη μετατροπής για GeoJSON
Η μετατροπή διανυσμάτων GeoJSON σε Google KML μετατρέπει ελαφριές συστοιχίες συντεταγμένων JSON σε δομημένα έγγραφα XML προσαρμοσμένα για το Google Earth και τους Χάρτες Google.
Η μετατροπή αρχείων Google KML σε GeoJSON μετατρέπει τα ιεραρχικά γεωγραφικά δεδομένα XML σε ελαφριά μορφή JavaScript Object Notation για σύγχρονους χάρτες ιστού.
Η μετατροπή δεδομένων διανυσμάτων GeoJSON σε GPX μεταφράζει τυπικά γεωγραφικά αντικείμενα JSON σε μια μορφή βασισμένη σε XML, βελτιστοποιημένη για φυσικές συσκευές πλοήγησης.