GeoJSON (.geojson)

IETF Τυπικό

Το Geographic JavaScript Object Notation (GeoJSON) είναι το καθολικό, διαδικτυακό πρότυπο για την κωδικοποίηση γεωγραφικών δομών δεδομένων, το οποίο χρησιμοποιείται ευρέως σε σύγχρονες διαδικτυακές εφαρμογές χαρτογράφησης (Leaflet, Mapbox, OpenLayers) και συστήματα GIS.

Μετατροπή GEOJSON σε KML

Δωρεάν μετατροπέας από GEOJSON σε KML εντός του προγράμματος περιήγησης. Μετατρέψτε αρχεία άμεσα στη συσκευή σας.

Επιθεώρηση & Μεταδεδομένα

Τα λειτουργικά συστήματα και τα εργαλεία ανάλυσης αρχείων αναγνωρίζουν τα αρχεία GeoJSON ελέγχοντας την αρχική δυαδική ακολουθία byte:

Επιλέξτε ή αποθέστε αρχεία εδώ

100% ιδιωτική μετατροπή εντός προγράμματος περιήγησης - τα αρχεία δεν φεύγουν ποτέ από τη συσκευή σας

ή επικόλληση Ctrl+V
Εγγύηση Απορρήτου Μηδενικής Μετάδοσης Δικτύου: 0 byte μεταφορτώθηκαν σε εξωτερικούς διακομιστές. Όλη η επεξεργασία πραγματοποιήθηκε τοπικά στο sandbox του προγράμματος περιήγησής σας.

Υπογραφή κεφαλίδας σε επίπεδο 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 ByteUTF-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 (Τρέχον)KMLGPXSHP
Υιοθέτηση Web Mapping100% καθολικό προεπιλεγμένο 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.

Βέλτιστες αμυντικές πρακτικές:

Ιστορική Αναδρομή & Ορόσημα

2016Το IETF τυποποιεί επίσημα τη μορφή GeoJSON ως RFC 7946, καθιστώντας υποχρεωτικά τα συστήματα γεωγραφικών αναφορών WGS 84.
2014Το GitHub εισάγει εγγενή διαδραστική οπτική απόδοση χαρτών για όλα τα αρχεία .geojson.
2008Ο Howard Butler, ο Sean Gillies και η κοινότητα ανοιχτού κώδικα GIS δημοσιεύουν την αρχική προδιαγραφή GeoJSON 1.0.

Κύρια Πλεονεκτήματα

  • Εγγενές πρότυπο ιστού: αντιστοιχίζεται απευθείας σε αντικείμενα 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.