GeoJSON (.geojson)

IETF Standard

Geografski zapis JavaScript Object Notation (GeoJSON) je univerzalni spletni standard za kodiranje geografskih podatkovnih struktur, ki se pogosto uporablja v sodobnih spletnih kartografskih rešitvah (Leaflet, Mapbox, OpenLayers) in aplikacijah GIS.

Pretvori GEOJSON v KML

Brezplačen pretvornik iz GEOJSON v KML v brskalniku. Pretvorite datoteke takoj v svoji napravi.

Pregled in metapodatki

Operacijski sistemi in analizatorji datotek identificirajo datoteke GeoJSON s pregledom vodilnega binarnega zaporedja bajtov:

Izberite ali povlecite datoteke sem

100-odstotno zasebna pretvorba v brskalniku - datoteke nikoli ne zapustijo vaše naprave

ali prilepi Ctrl+V
Jamstvo o zasebnosti brez prenosa podatkov v omrežje: 0 bajtov naloženih na zunanje strežnike. Vsa obdelava je potekala lokalno v varnem območju vašega brskalnika.

Podpis glave na ravni bajtov (Čarobni bajti)

Operacijski sistemi in analizatorji datotek identificirajo datoteke GeoJSON s pregledom vodilnega binarnega zaporedja bajtov:

PODPIS HEX (ZAMIK 0):

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

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

Standardizacija: IETF RFC 7946

Tehnične specifikacije

Arhitektura vsebnikaJSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
StiskanjeUncompressed text (readily compressed over HTTP via Gzip or Brotli)
Vrstni red bajtovUTF-8 text stream
Barvni prostoriN/A (Geographic Data)
Kanali in strukturaPoints, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
Največje dimenzijeWorld Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
ProsojnostNone
Pretočno in progresivno predvajanjeLine-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features

Tehnična primerjalna matrika: GeoJSON proti konkurenci

Tehnični atributGeoJSON (Trenutno)KMLGPXSHP
Uporaba v spletnih zemljevidih100-odstotno univerzalna privzeta vrednost za spletni GISPrivzeta vrednost Google EarthPrivzeta vrednost za naprave GPS in fitnesZapuščeni standard namiznega sistema GIS
Vrstni red koordinat[zemljepisna dolžina, zemljepisna širina] (X, Y)Zemljepisna dolžina, zemljepisna širina, nadmorska višinaZemljepisna širina, zemljepisna dolžinaKoordinate X, Y
Slog sintakseČisti ključi in vrednosti JSONObsežne oznake XML (<kml>)Obsežne oznake XML (<gpx>)Večdatotečni binarni zapis (.shp, .shx, .dbf)
Shema lastnostiPoljuben predmet lastnosti JSONOznake sheme ExtendedDataFiksne oznake sheme GPXFiksni stolpci dBase IV (.dbf)

Pogosti načini okvar in vodič za heksadecimalno obnovo

Točke na zemljevidu se prikažejo v oceanu blizu Antarktike namesto na pravi lokaciji.

Glavni vzrok: V tabeli koordinat so bile vrednosti zemljepisne širine in dolžine pomotoma zamenjane.

Sanacija: Zamenjajte položaj koordinat [lon, lat] s pretvornikom File2File GeoJSON.

Varnostna analiza in napadalni vektorji razčlenjevalnika

Lastnosti GeoJSON lahko vsebujejo poljuben uporabniški vnos, ki ga je treba pred upodobitvijo v pojavnih okencih zemljevida očistiti, da se prepreči napad XSS.

Znani vektorji napada

  • Navzkrižno skriptiranje (XSS) prek neoznačenega HTML v lastnostih funkcij GeoJSON, upodobljenih v orodnih namigih zemljevidov.
  • Zavrnitev storitve zaradi globoko gnezdenih elementov GeometryCollection ali mnogokotnikov z milijoni oglišč.
  • Ponarejanje zahtevkov na strežniški strani (SSRF) prek oddaljenega nalaganja funkcij GeoJSON.

Obrambne najboljše prakse:

Zgodovinski izvor in mejniki

2016IETF uradno standardizira format GeoJSON kot RFC 7946, ki predpisuje koordinatne referenčne sisteme WGS 84.
2014GitHub uvede domače interaktivno vizualno upodabljanje zemljevidov za vse datoteke .geojson.
2008Howard Butler, Sean Gillies in odprtokodna skupnost GIS objavijo začetno specifikacijo GeoJSON 1.0.

Ključne prednosti

  • Domači spletni standard: neposredno se preslikava v predmete JavaScript v knjižnicah za kartiranje v brskalniku (Mapbox GL JS, Leaflet).
  • Bralljiva struktura JSON omogoča preprosto programsko ustvarjanje, filtriranje in odpravljanje napak.
  • Poljubna shema lastnosti: katerim koli geometrijskim oblikam lahko neposredno dodate poljubne metapodatke (štebilo prebivalstva, ime, hitrost, prihodek).

Tehnične omejitve in slabosti

  • Besedilna obsežnost: koordinate s plavajočo vejico shranjuje kot ponavljajoče se znake ASCII, kar vodi do večjih velikosti datotek kot pri binarnih oblikah Shapefile ali FlatGeobuf.
  • RFC 7946 strogo določa vrstni red [zemljepisna dolžina, zemljepisna širina], kar pogosto bega razvijalce, vajene oblike 'širina/dolžina'.
  • Veliki mnogokotniki z milijoni oglišč lahko povzročijo upočasnitev upodabljanja DOM v spletnem brskalniku.

Zanimive tehnične malenkosti

  • Uradni standard GeoJSON ureja koordinate kot [zemljepisna dolžina, zemljepisna širina] (kartezični vrstni red X, Y), kar je točno nasprotno od tega, kako ljudje govorijo ('zemljepisna širina, zemljepisna dolžina').
  • Če v GitHubu naložite datoteko .geojson, jo GitHub samodejno prikaže kot interaktiven zemljevid, na katerega je mogoče klikniti.
  • RFC 7946 določa, da morajo obodne linije mnogokotnikov slediti 'pravilu desne roke': zunanje linije morajo biti obrnjene v nasprotni smeri urinega kazalca.

Pogosta tehnična vprašanja

Zakaj so moje koordinate v formatu GeoJSON urejene kot [zemljepisna dolžina, zemljepisna širina] namesto [zemljepisna širina, zemljepisna dolžina]?

Ker so v matematiki in računalniški grafiki koordinate vedno podane kot (X, Y). Zemljepisna dolžina predstavlja vodoravno os X, zemljepisna širina pa navpično os Y.

Kako lahko pretvorim KML ali Shapefile v GeoJSON?

Datoteke Google Earth KML ali Esri Shapefile lahko v nekaj sekundah pretvorite v čist format GeoJSON, pripravljen za splet, z uporabo File2File.app neposredno v brskalniku.

Kakšna je razlika med GeoJSON in Shapefile?

Shapefile je zastarel binarni večdatotečni format iz 90. let prejšnjega stoletja (.shp, .shx, .dbf). GeoJSON je sodoben, enodatotečni odprti spletni format, zapisan v čistem zapisu JSON.