GeoJSON (.geojson)

IETF Standardowy

Geographic JavaScript Object Notation (GeoJSON) to uniwersalny, natywny dla internetu standard kodowania struktur danych geograficznych, szeroko stosowany w nowoczesnych mapach internetowych (Leaflet, Mapbox, OpenLayers) oraz aplikacjach GIS.

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

Konwersja w 100% prywatna w przeglądarce - 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 konteneraJSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
KompresjaUncompressed text (readily compressed over HTTP via Gzip or Brotli)
Kolejność bajtów (Endianness)UTF-8 text stream
Przestrzenie kolorówN/A (Geographic Data)
Kanały i strukturaPoints, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
Maks. wymiaryWorld Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
PrzezroczystośćNone
Streaming i progresywne ładowanieLine-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features

Techniczna macierz porównawcza: GeoJSON a konkurencja

Atrybut technicznyGeoJSON (Bieżący)KMLGPXSHP
Wdrożenie w mapach internetowych100% uniwersalny domyślny GIS internetowyDomyślny dla Google EarthDomyślny dla urządzeń GPS i fitnessDziedziczony standard dla stacjonarnych 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 swojej rzeczywistej lokalizacji.

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

Odzyskiwanie: Zamień pozycje współrzędnych [lon, lat] za pomocą konwertera GeoJSON File2File.

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

  • Cross-site scripting (XSS) za pomocą nieoznakowanego kodu HTML we właściwościach obiektów GeoJSON renderowanych w podpowiedziach mapy.
  • Atak typu Denial of Service poprzez głęboko zagnieżdżone obiekty GeometryCollection lub wielokąty liczące miliony wierzchołków.
  • Server-Side Request Forgery poprzez zdalne ładowanie obiektów GeoJSON.

Najlepsze praktyki obronne:

Pochodzenie historyczne i kamienie milowe

2016IETF oficjalnie standaryzuje format GeoJSON jako RFC 7946, narzucając układy odniesienia współrzędnych WGS 84.
2014GitHub wprowadza natywne, interaktywne renderowanie map wizualnych dla wszystkich plików .geojson.
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 standard internetowy: mapuje się bezpośrednio na obiekty JavaScript w bibliotekach map przeglądarkowych (Mapbox GL JS, Leaflet).
  • Czytelna dla człowieka struktura JSON pozwala na bezproblemowe programowe tworzenie, filtrowanie i debugowanie.
  • 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

  • Zawiłość tekstowa: przechowuje współrzędne zmiennoprzecinkowe jako powtarzające się cyfry ASCII, co prowadzi do większych rozmiarów plików niż w przypadku binarnego formatu Shapefile lub FlatGeobuf.
  • RFC 7946 ściśle narzuca kolejność [Długość, Szerokość] (Longitude, Latitude), co często dezorientuje programistów przyzwyczajonych do układu 'Lat/Long'.
  • Duże wielokąty z milionami wierzchołków mogą powodować spowolnienia renderowania DOM w przeglądarce internetowej.

Ciekawe informacje techniczne

  • Oficjalny standard GeoJSON porządkuje współrzędne jako [Długość geograficzna, Szerokość geograficzna] (porządek kartezjański X, Y), co jest dokładnie odwrotnością tego, jak mówią ludzie ('Szerokość, Długość').
  • Jeśli zatwierdzisz plik .geojson w serwisie GitHub, GitHub automatycznie renderuje go jako interaktywną, klikalną mapę.
  • RFC 7946 wymaga, aby pierścienie graniczne wielokątów były zgodne z 'zasadą prawej ręki': pierścienie zewnętrzne muszą być nawijane przeciwnie do ruchu wskazówek zegara.

Często zadawane pytania techniczne

Dlaczego współrzędne w moim pliku GeoJSON są uporządkowane jako [długość, szerokość] zamiast [szerokość, długość]?

Ponieważ w matematyce i grafice komputerowej współrzędne są zawsze podawane jako (X, Y). Długość geograficzna reprezentuje poziomą oś X, a szerokość geograficzna reprezentuje pionową oś Y.

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ądarkce.

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

Shapefile to przestarzały, wieloplikowy format binarny z lat 90. XX wieku (.shp, .shx, .dbf). GeoJSON to nowoczesny, jednoplikowy, otwarty format internetowy zapisany w czystym formacie JSON.