GeoJSON (.geojson)

IETF Standard

Geographic JavaScript Object Notation (GeoJSON) on universaalne veebipõhine standard geograafiliste andmestruktuuride kodeerimiseks, mida kasutatakse laialdaselt kaasaegsetes veebikaardirakendustes (Leaflet, Mapbox, OpenLayers) ja GIS-tarkvaras.

Teisenda formaadist GEOJSON formaati KML

Tasuta GEOJSON -> KML konverter brauseris. Teisenda faile koheselt oma seadmes.

Kontrolli ja metaandmed

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad GeoJSON faile, kontrollides algset binaarset baidijada:

Vali või lohista failid siia

100% privaatne konversioon brauseris - failid ei lahku kunagi sinu seadmest

või kleebi Ctrl+V
Null-võrguülekande privaatsusgarantii: 0 baiti laaditakse üles välistesse serveritesse. Kogu töötlemine toimub lokaalselt sinu brauseri liivakastis.

Baidi-taseme päise allkiri (maagilised baidid)

Operatsioonisüsteemid ja failianalüsaatorid tuvastavad GeoJSON faile, kontrollides algset binaarset baidijada:

HEX-ALLKIRI (NIHE 0):

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

ASCII-ESITUS: {\n "type": "Feature

Standardiseerimine: IETF RFC 7946

Tehnilised andmed

Konteineri arhitektuurJSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
TihendamineUncompressed text (readily compressed over HTTP via Gzip or Brotli)
Baitide järjekord (Endianness)UTF-8 text stream
VärviruumidN/A (Geographic Data)
Kanalid ja struktuurPoints, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
Max mõõtmedWorld Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
LäbipaistvusNone
Voogedastus ja progressiivsusLine-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features

Tehniline võrdlusmaatriks: GeoJSON vs konkurendid

Tehniline atribuutGeoJSON (Praegune)KMLGPXSHP
Veebikaartide kasutuselevõtt100% universaalne veebi GIS-i vaikeseadeGoogle Earthi vaikeseadeGPS-seadme ja treeningu vaikeseadeTöölaua GIS-i pärandstandard
Koordinaatide järjekord[Pikkuskraad, Laiuskraad] (X, Y)Pikkuskraad, Laiuskraad, KõrgusLaiuskraad, PikkuskraadX, Y koordinaadid
Süntaksi stiilPuhtad JSON-i võti-väärtus paaridKohmakad XML-sildid (<kml>)Kohmakad XML-sildid (<gpx>)Mitme failiga binaarvorming (.shp, .shx, .dbf)
Atribuutide skeemMeelevaldne JSON-atribuutide objektExtendedData skeemi sildidFikseeritud GPX-skeemi sildiddBase IV (.dbf) fikseeritud veerud

Levinud riknemisvead ja heksataaste juhend

Kaardi punktid ilmuvad ookeani Antarktika lähedal, mitte nende tegelikus asukohas.

Juurpõhjus: Laiuskraadi ja pikkuskraadi väärtused vahetati koordinaatide massiivis kogemata omavahel ära.

Taastamine: Vahetage koordinaatide positsioonid [pikkuskraad, laiuskraad] ümber, kasutades File2File GeoJSON-i konverterit.

Turvaanalüüs ja parsimisründevektorid

GeoJSON-i atribuudid võivad sisaldada meelevaldseid kasutaja sisestatud andmeid, mis tuleb enne kaardi hüpikaknatesse renderdamist puhastada, et vältida XSS-rünnakuid.

Teadaolevad ründavektorid

  • Saididevaheline skriptimine (XSS) kaardi vihjete hulgas renderdatud GeoJSON-i elemendi atribuutides oleva põgenemata HTML-i kaudu.
  • Teenusetõkestus sügavalt pesastatud GeometryCollectionite või miljoni tipuga polügoonide kaudu.
  • Serveripoolne päringuvõltsing (SSRF) kaug-GeoJSON-i elementide laadimise kaudu.

Kaitsealased parimad tavad:

Ajalooline taust ja verstapostid

2016IETF standardiseerib GeoJSON-i vormi ametlikult standardina RFC 7946, kehtestades kohustuslikuks WGS 84 koordinaatsüsteemid.
2014GitHub võtab kasutusele kõigi .geojson-failide kohaliku interaktiivse visuaalse kaardiesituse.
2008Howard Butler, Sean Gillies ja avatud lähtekoodiga GIS-i kogukond avaldavad esialgse GeoJSON 1.0 spetsifikatsiooni.

Peamised eelised

  • Kohalik veebistandard: kaardistub otse brauseri kaarditeekide (Mapbox GL JS, Leaflet) JavaScripti objektideks.
  • Inimesele loetav JSON-struktuur võimaldab lihtsat programmipõhist loomist, filtreerimist ja silumist.
  • Meelevaldne atribuudiskeem: saate lisada mis tahes kohandatud metaandmeid (rahvaarv, nimi, kiirus, tulu) otse geomeetrilistele kujunditele.

Tehnilised piirangud ja puudused

  • Tekstipõhine kohmakus: salvestab ujukoma-koordinaadid korduvate ASCII-numbritsetena, mis viib suuremate failisuurusteni kui binaarsed Shapefile'd või FlatGeobuf.
  • RFC 7946 nõuab rangelt järjekorda [pikkuskraad, laiuskraad], mis ajab sageli segadusse arendajad, kes on harjunud järjekorraga „laiuskraad/pikkuskraad".
  • Suured miljonite tippudega polügoonid võivad põhjustada veebibrauseri DOM-i renderdamise aeglustumist.

Huvitavaid tehnilisi fakte

  • Ametlik GeoJSON-i standard seab koordinaadid järjekorda [pikkuskraad, laiuskraad] (X, Y Cartesiuse järjekord), mis on täpne vastand sellele, kuidas inimesed räägivad („laiuskraad, pikkuskraad").
  • Kui laadite .geojson-faili GitHubi, renderdab GitHub selle automaatselt interaktiivseks ja klõpsatavaks kaardiks.
  • RFC 7946 nõuab, et polügooni piirjooned peavad järgima „parema käe reeglit": välisringid peavad olema suunatud vastupäeva.

Korduma kippuvad tehnilised küsimused

Miks on minu GeoJSON-i koordinaadid järjestatud [pikkuskraad, laiuskraad] eikä [laiuskraad, pikkuskraad]?

Kuna matemaatikas ja arvutigraafikas määratakse koordinaadid alati kujul (X, Y). Pikkuskraad esindab horisontaalset X-telge ja laiuskraad vertikaalset Y-telge.

Kuidas teisendada KML- või Shapefile-fail GeoJSON-iks?

Saate Google Earthi KML-failid või Esri Shapefile'id puhtaks, veebivalmis GeoJSON-iks teisendada mõne sekundiga, kasutades otse brauseris lehte File2File.app.

Mis vahe on GeoJSON-il ja Shapefile'il?

Shapefile on 1990ndate aegunud mitmest failist koosnev binaarformaat (.shp, .shx, .dbf). GeoJSON on kaasaegne, puhtas JSON-is kirjutatud ühe failiga avatud veebivorming.