GeoJSON (.geojson)
IETF StandardGeoJSON 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:
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 65REPREZENTACJA ASCII: {\n "type": "Feature
Normalizacja: IETF RFC 7946
Specyfikacja techniczna
| Architektura kontenera | Dokument JSON zgodny z RFC 7946, opisujący obiekty geograficzne Feature, FeatureCollection i Geometry |
| Kompresja | Nieskompresowany tekst, który można łatwo skompresować przez HTTP za pomocą Gzip lub Brotli |
| Kolejność bajtów (Endianness) | Strumień tekstu UTF-8 |
| Przestrzenie kolorów | N/A (Geographic Data) |
| Kanały i struktura | Punkty, punkty wielokrotne, linie, linie wielokrotne, wielokąty, wielokąty wielokrotne, kolekcje geometrii i właściwości niestandardowe |
| Maks. wymiary | Ukł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 ładowanie | GeoJSON 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 techniczny | GeoJSON (Bieżący) | KML | GPX | SHP |
|---|---|---|---|---|
| Wdrożenie w mapach internetowych | Uniwersalny, domyślny format w internetowych systemach GIS | Domyślny dla Google Earth | Domyślny dla urządzeń GPS i monitorów aktywności | Starszy 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ładni | Czyste pary klucz-wartość JSON | Rozbudowane znaczniki XML (<kml>) | Rozbudowane znaczniki XML (<gpx>) | Pliki binarne wieloplikowe (.shp, .shx, .dbf) |
| Schemat właściwości | Dowolny obiekt właściwości JSON | znaczniki schematu ExtendedData | Stałe znaczniki schematu GPX | Stał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
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.
Powiązane pary konwersji GeoJSON
Konwersja wektorów GeoJSON do formatu Google KML przekształca lekkie tablice współrzędnych JSON w ustrukturyzowane dokumenty XML dostosowane do programów Google Earth i Google Maps.
Konwersja plików Google KML do formatu GeoJSON przekształca hierarchiczne dane geograficzne XML w lekki format wektorowy JSON, odpowiedni dla nowoczesnych map internetowych.
Konwersja danych wektorowych GeoJSON na format GPX przekształca standardowe obiekty geograficzne JSON w format oparty na języku XML, zoptymalizowany dla fizycznych urządzeń nawigacyjnych.