GeoJSON (.geojson)

IETF Standard

GeoJSON jest popularny w mapach internetowych, ale obsługa bywa różna. GitHub wyświetla obsługiwane pliki z ograniczeniami; RFC 7946 określa kolejność długość, szerokość.

Konwertuj GEOJSON na KML

Darmowy konwerter z GEOJSON na KML w przeglądarce. Konwertuj pliki natychmiast na swoim urządzeniu.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki GeoJSON, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Prywatnie - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki GeoJSON, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

7B 0A 20 20 22 74 79 70 65 22 3A 20 22 46 65 61 74 75 72 65

REPREZENTACJA ASCII: {\n "type": "Feature

Normalizacja: IETF RFC 7946

Specyfikacja techniczna

Architektura konteneraDokument JSON zgodny z RFC 7946, opisujący obiekty geograficzne Feature, FeatureCollection i Geometry
KompresjaNieskompresowany tekst, który można łatwo skompresować przez HTTP za pomocą Gzip lub Brotli
Kolejność bajtów (Endianness)Strumień tekstu UTF-8
Przestrzenie kolorówN/A (Geographic Data)
Kanały i strukturaPunkty, punkty wielokrotne, linie, linie wielokrotne, wielokąty, wielokąty wielokrotne, kolekcje geometrii i właściwości niestandardowe
Maks. wymiaryUkład współrzędnych World Geodetic System 1984 (WGS 84): długość geograficzna od -180 do +180, szerokość geograficzna od -90 do +90
PrzezroczystośćNone
Streaming i progresywne ładowanieGeoJSON z podziałem na wiersze (GeoJSONL / GeoJSONSeq) umożliwia ciągłe przesyłanie strumieniowe milionów obiektów

Techniczna macierz porównawcza: GeoJSON a konkurencja

Atrybut technicznyGeoJSON (Bieżący)KMLGPXSHP
Wdrożenie w mapach internetowychUniwersalny, domyślny format w internetowych systemach GISDomyślny dla Google EarthDomyślny dla urządzeń GPS i monitorów aktywnościStarszy standard dla stacjonarnych systemów GIS
Kolejność współrzędnych[Długość, Szerokość] (X, Y)Długość, Szerokość, WysokośćSzerokość, DługośćWspółrzędne X, Y
Styl składniCzyste pary klucz-wartość JSONRozbudowane znaczniki XML (<kml>)Rozbudowane znaczniki XML (<gpx>)Pliki binarne wieloplikowe (.shp, .shx, .dbf)
Schemat właściwościDowolny obiekt właściwości JSONznaczniki schematu ExtendedDataStałe znaczniki schematu GPXStałe kolumny dBase IV (.dbf)

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Punkty na mapie pojawiają się w oceanie w pobliżu Antarktydy zamiast w rzeczywistych lokalizacjach.

Główna przyczyna: Wartości szerokości i długości geograficznej zostały przypadkowo zamienione miejscami w tablicy współrzędnych.

Odzyskiwanie: Zamień kolejność współrzędnych na [lon, lat] za pomocą konwertera GeoJSON File2File.app.

Analiza bezpieczeństwa i wektory ataku na parser

Właściwości GeoJSON mogą zawierać dowolne dane wprowadzane przez użytkownika, które muszą zostać oczyszczone przed wyrenderowaniem w oknach wyskakujących mapy, aby zapobiec atakom XSS.

Znane wektory ataku

  • Atak XSS (cross-site scripting) przez niezabezpieczony kod HTML we właściwościach obiektów GeoJSON wyświetlanych w podpowiedziach mapy.
  • Odmowa usługi przez głęboko zagnieżdżone obiekty GeometryCollection lub wielokąty z milionami wierzchołków.
  • Server-Side Request Forgery poprzez zdalne ładowanie obiektów GeoJSON.

Najlepsze praktyki obronne: Przed wstawieniem tekstu właściwości do wyskakujących okien mapy oczyść go za pomocą biblioteki DOMPurify.

Pochodzenie historyczne i kamienie milowe

2016IETF oficjalnie standaryzuje format GeoJSON jako RFC 7946, narzucając układy odniesienia współrzędnych WGS 84.
2014GeoJSON jest popularny w mapach internetowych, ale obsługa bywa różna. GitHub wyświetla obsługiwane pliki z ograniczeniami; RFC 7946 określa kolejność długość, szerokość.
2008Howard Butler, Sean Gillies oraz społeczność GIS o otwartym kodzie źródłowym publikują początkową specyfikację GeoJSON 1.0.

Główne zalety

  • Natywny format internetowy: biblioteki mapowe w przeglądarkach (Mapbox GL JS, Leaflet) bezpośrednio przekształcają go w obiekty JavaScript.
  • Czytelna struktura JSON ułatwia programowe tworzenie i filtrowanie danych oraz wyszukiwanie błędów.
  • Dowolny schemat właściwości: dołączanie dowolnych niestandardowych metadanych (populacja, nazwa, prędkość, przychód) bezpośrednio do kształtów geometrycznych.

Ograniczenia techniczne i wady

  • Rozwlekłość formatu tekstowego: współrzędne zmiennoprzecinkowe są zapisywane jako powtarzające się cyfry ASCII, dlatego pliki są większe niż w binarnych formatach Shapefile i FlatGeobuf.
  • RFC 7946 ściśle określa kolejność [długość geograficzna, szerokość geograficzna] (Longitude, Latitude), co często myli programistów przyzwyczajonych do kolejności „szerokość, długość”.
  • Duże wielokąty z milionami wierzchołków mogą powodować spowolnienia renderowania DOM w przeglądarce internetowej.

Ciekawe informacje techniczne

  • Oficjalny standard GeoJSON określa kolejność współrzędnych [długość geograficzna, szerokość geograficzna] (kartezjańskie X, Y), odwrotną do potocznie używanej kolejności „szerokość, długość”.
  • GeoJSON jest popularny w mapach internetowych, ale obsługa bywa różna. GitHub wyświetla obsługiwane pliki z ograniczeniami; RFC 7946 określa kolejność długość, szerokość.
  • RFC 7946 wymaga, aby pierścienie graniczne wielokątów spełniały „regułę prawej dłoni”: pierścienie zewnętrzne muszą być zapisane w kierunku przeciwnym do ruchu wskazówek zegara.

Często zadawane pytania techniczne

Dlaczego współrzędne w pliku GeoJSON są zapisane jako [długość geograficzna, szerokość geograficzna], a nie [szerokość, długość geograficzna]?

GeoJSON jest popularny w mapach internetowych, ale obsługa bywa różna. GitHub wyświetla obsługiwane pliki z ograniczeniami; RFC 7946 określa kolejność długość, szerokość.

Jak mogę przekonwertować plik KML lub Shapefile do formatu GeoJSON?

Możesz przekonwertować pliki Google Earth KML lub Esri Shapefile na czysty format GeoJSON gotowy do użycia w sieci w kilka sekund za pomocą File2File.app bezpośrednio w przeglądarce.

Jaka jest różnica między GeoJSON a Shapefile?

Shapefile jest nadal powszechnie używany do wymiany danych i obsługiwany przez oprogramowanie GIS, ale jego wieloplikowa struktura i ograniczenia atrybutów mogą sprawić, że w niektórych zastosowaniach lepiej sprawdzi się GeoJSON lub geobaza danych.