GeoJSON (.geojson)
IETF ΤυπικόΤο Geographic JavaScript Object Notation (GeoJSON) είναι το καθολικό, διαδικτυακό πρότυπο για την κωδικοποίηση γεωγραφικών δομών δεδομένων, το οποίο χρησιμοποιείται ευρέως σε σύγχρονες διαδικτυακές εφαρμογές χαρτογράφησης (Leaflet, Mapbox, OpenLayers) και συστήματα GIS.
Μετατροπή 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 document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries |
| Συμπίεση | Uncompressed text (readily compressed over HTTP via Gzip or Brotli) |
| Endianness Byte | UTF-8 text stream |
| Χρωματικοί Χώροι | N/A (Geographic Data) |
| Κανάλια & Δομή | Points, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties |
| Μέγιστες Διαστάσεις | World Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90) |
| Διαφάνεια | None |
| Streaming & Προοδευτική Φόρτωση | Line-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features |
Τεχνικός Πίνακας Σύγκρισης: GeoJSON έναντι Ανταγωνιστών
| Τεχνικό χαρακτηριστικό | GeoJSON (Τρέχον) | KML | GPX | SHP |
|---|---|---|---|---|
| Υιοθέτηση Web Mapping | 100% καθολικό προεπιλεγμένο web GIS | Προεπιλογή Google Earth | Προεπιλογή συσκευών GPS και fitness | Παλαιό πρότυπο desktop GIS |
| Σειρά Συντεταγμένων | [Γεωγραφικό Μήκος, Γεωγραφικό Πλάτος] (X, Y) | Γεωγραφικό Μήκος, Γεωγραφικό Πλάτος, Υψόμετρο | Γεωγραφικό Πλάτος, Γεωγραφικό Μήκος | Συντεταγμένες X, Y |
| Στυλ Σύνταξης | Καθαρά ζεύγη κEidi-τιμής JSON | Πολύλογες ετικέτες XML (<kml>) | Πολύλογες ετικέτες XML (<gpx>) | Δυαδικά αρχεία πολλαπλών αρχείων (.shp, .shx, .dbf) |
| Σχήμα Ιδιοτήτων | Αυθαίρετο αντικείμενο ιδιοτήτων JSON | Ετικέτες σχήματος ExtendedData | Σταθερές ετικέτες σχήματος GPX | Σταθερές στήλες dBase IV (.dbf) |
Συνηθισμένοι Τρόποι Διαφθοράς & Οδηγός Ανάκτησης Hex
Τα σημεία του χάρτη εμφανίζονται στον ωκεανό κοντά στην Ανταρκτική αντί για την πραγματική τους τοποθεσία.
Βασική Αιτία: Οι τιμές γεωγραφικού πλάτους και μήκους αντιστράφηκαν τυχαία στον πίνακα συντεταγμένων.
Ανάκτηση: Ανταλλάξτε τις θέσεις συντεταγμένων [lon, lat] χρησιμοποιώντας το File2File GeoJSON Converter.
Ανάλυση Ασφάλειας & Διανύσματα Επίθεσης Parser
Οι ιδιότητες GeoJSON μπορούν να περιέχουν αυθαίρετες εισόδους χρηστών που πρέπει να απολυμαίνονται πριν από την απόδοση σε αναδυόμενα παράθυρα χάρτη για την αποτροπή XSS.
Γνωστά διανύσματα επίθεσης
- Cross-site scripting (XSS) μέσω μη διαφεύγουσας HTML σε ιδιότητες χαρακτηριστικών GeoJSON που αποδίδονται σε tooltips χάρτη.
- Άρνηση υπηρεσίας μέσω βαθιά ένθετων GeometryCollections ή πολυγώνων εκατομμυρίων κορυφών.
- Server-Side Request Forgery μέσω απομακρυσμένης φόρτωσης χαρακτηριστικών GeoJSON.
Βέλτιστες αμυντικές πρακτικές:
Ιστορική Αναδρομή & Ορόσημα
Κύρια Πλεονεκτήματα
- Εγγενές πρότυπο ιστού: αντιστοιχίζεται απευθείας σε αντικείμενα JavaScript σε βιβλιοθήκες χαρτογράφησης περιηγητή (Mapbox GL JS, Leaflet).
- Η ευανάγνωστη από τον άνθρωπο δομή JSON επιτρέπει την αβίαστη προγραμματική δημιουργία, φιλτράρισμα και αποσφαλμάτωση.
- Αυθαίρετο σχήμα ιδιοτήτων: επισύναψη οποιωνδήποτε προσαρμοσμένων μεταδεδομένων (πληθυσμός, όνομα, ταχύτητα, έσοδα) απευθείας σε γεωμετρικά σχήματα.
Τεχνικοί Περιορισμοί & Μειονεκτήματα
- Πολυλογία κειμένου: αποθηκεύει συντεταγμένες κινητής υποδιasτολής ως επαναλαμβανόμενα ψηφία ASCII, οδηγώντας σε μεγαλύτερα μεγέθη αρχείων από τα δυαδικά Shapefiles ή FlatGeobuf.
- Το RFC 7946 ορίζει αυστηρά τη σειρά [Γεωγραφικό Μήκος, Γεωγραφικό Πλάτος] (Longitude, Latitude), η οποία συχνά μπερδεύει τους προγραμματιστές που έχουν συνηθίσει το «Lat/Long».
- Τα μεγάλα πολύγωνα με εκατομμύρια κορυφές μπορούν να προκαλέσουν επιβράδυνση της απόδοσης DOM του προγράμματος περιήγησης ιστού.
Ενδιαφέροντα Τεχνικά Στοιχεία
- Το επίσημο πρότυπο GeoJSON ταξινομεί τις συντεταγμένες ως [Γεωγραφικό Μήκος, Γεωγραφικό Πλάτος] (καρτεσιανή σειρά X, Y), η οποία είναι ακριβώς το αντίθετο από τον τρόπο που μιλούν οι άνθρωποι («Γεωγραφικό Πλάτος, Γεωγραφικό Μήκος»).
- Εάν κάνετε commit ένα αρχείο .geojson στο GitHub, το GitHub το αποδίδει αυτόματα ως διαδραστικό, clickable χάρτη.
- Το RFC 7946 ορίζει ότι τα όρια των πολυγώνων πρέπει να ακολουθούν τον «κανόνα του δεξιού χεριού»: τα εξωτερικά όρια πρέπει να τυλίγονται αριστερόστροφα.
Συχνές Τεχνικές Ερωτήσεις
Γιατί οι συντεταγμένες μου GeoJSON είναι ταξινομημένες ως [longitude, latitude] αντί για [latitude, longitude];
Επειδή στα μαθηματικά και τα γραφικά υπολογιστών, οι συντεταγμένες καθορίζονται πάντα ως (X, Y). Το γεωγραφικό μήκος (longitude) αντιπροσωπεύει τον οριζόντιο άξονα X και το γεωγραφικό πλάτος (latitude) αντιπροσωπεύει τον κατακόρυφο άξονα Y.
Πώς μπορώ να μετατρέψω KML ή Shapefile σε GeoJSON;
Μπορείτε να μετατρέψετε αρχεία Google Earth KML ή Esri Shapefiles σε καθαρό GeoJSON έτοιμο για τον ιστό σε λίγα δευτερόλεπτα χρησιμοποιώντας το File2File.app απευθείας στο πρόγραμμα περιήγησής σας.
Ποια είναι η διαφορά μεταξύ GeoJSON και Shapefile;
Το Shapefile είναι μια παρωχημένη δυαδική μορφή πολλαπλών αρχείων από τη δεκαετία του 1990 (.shp, .shx, .dbf). Το GeoJSON είναι μια σύγχρονη, ανοιχτή μορφή ιστού ενός αρχείου γραμμένη σε καθαρό JSON.
Σχετικά ζεύγη μετατροπής GeoJSON
Η μετατροπή διανυσμάτων GeoJSON σε Google KML μεταφράζει ελαφριές συστοιχίες συντεταγμένων JSON σε δομημένα έγγραφα XML προσαρμοσμένα για το Google Earth και τους Χάρτες Google.
Η μετατροπή αρχείων Google KML σε GeoJSON μετατρέπει τα ιεραρχικά γεωγραφικά δεδομένα XML σε ελαφριά διανύσματα JavaScript Object Notation για σύγχρονους χάρτες ιστού.
Η μετατροπή δεδομένων διανυσμάτων GeoJSON σε GPX μεταφράζει τυπικά γεωγραφικά αντικείμενα JSON σε μια μορφή βασισμένη σε XML, βελτιστοποιημένη για φυσικές συσκευές πλοήγησης.