GeoJSON (.geojson)

IETF Standartinis

Geografinio JavaScript objekto žymėjimo kalba (GeoJSON) yra universalus, žiniatinklyje gimtas geografinių duomenų struktūrų kodavimo standartas, plačiai naudojamas šiuolaikiniuose žiniatinklio žemėlapiuose („Leaflet", „Mapbox", „OpenLayers") ir GIS programose.

Konvertuoti GEOJSON į KML

Nemokamas GEOJSON į KML konverteris naršyklėje. Konvertuokite failus akimirksniu savo įrenginyje.

Tikrinti ir metaduomenys

Operacinės sistemos ir failų analizatoriai atpažįsta GeoJSON failus tikrindami pradinę dvejetainę baitų seką:

Pasirinkite arba nuvilkite failus čia

100% privatus konvertavimas naršyklėje - failai niekada nepalieka jūsų įrenginio

arba įklijuokite Ctrl+V
Nulinio tinklo perdavimo privatumo garantija: 0 baitų įkelta į išorinius serverius. Visas apdorojimas vyko vietoje, jūsų naršyklės smėlio dėžėje (sandbox).

Baitų lygio antraštės parašas (magiškieji baitai)

Operacinės sistemos ir failų analizatoriai atpažįsta GeoJSON failus tikrindami pradinę dvejetainę baitų seką:

ŠEŠIOLIKTAINIS PARAŠAS (POSLINKIS 0):

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

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

Standartizacija: IETF RFC 7946

Techninės specifikacijos

Konteinerio architektūraJSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
GlaudinimasUncompressed text (readily compressed over HTTP via Gzip or Brotli)
Baitų seka (Endianness)UTF-8 text stream
Spalvų erdvėsN/A (Geographic Data)
Kanalai ir struktūraPoints, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
Maksimalūs matmenysWorld Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
SkaidrumasNone
Srautas ir progresyvusis įkėlimasLine-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features

Techninė palyginimo matrica: GeoJSON vs konkurentai

Techninis atributasGeoJSON (Dabartinis)KMLGPXSHP
Pritaikymas žiniatinklio žemėlapiams100% universalus žiniatinklio GIS numatytasis standartas„Google Earth" numatytasisGPS įrenginių ir sporto numatytasisDarbalaukio GIS pasenęs standartas
Koordinačių tvarka[ilguma, platuma] (X, Y)ilguma, platuma, aukštisplatuma, ilgumaX, Y koordinatės
Sintaksės stiliusŠvarūs JSON raktai-reikšmėsPerteklinės XML žymos (<kml>)Perteklinės XML žymos (<gpx>)Kelių failų dvejetainis (.shp, .shx, .dbf)
Savybių schemaPasirinktinis JSON savybių objektas„ExtendedData" schemos žymosFiksuotos GPX schemos žymos„dBase IV" (.dbf) fiksuoti stulpeliai

Dažni sugadinimo režimai ir šešioliktainio atkūrimo vadovas

Žemėlapio taškai atsiranda vandenyje prie Antarktidos, o ne tikrojoje jų vietoje.

Pirminė priežastis: Koordinačių masyve buvo netyčia sukeistos vietomis platumos ir ilgumos reikšmės.

Atkūrimas: Sukeiskite koordinačių pozicijas [ilgun., plat.] naudodami „File2File GeoJSON" keitiklį.

Saugumo analizė ir analizatoriaus atakos vektoriai

GeoJSON savybėse gali būti pasirinktinio vartotojo įvesties, kurią prieš atvaizduojant žemėlapio iššokančiuose languose būtina dezinfekuoti, kad būtų išvengta XSS.

Žinomi atakos vektoriai

  • Svetainių tarpinio skriptavimo (XSS) ataka per nesukeistą HTML kodą GeoJSON elementų savybėse, rodomose žemėlapio patarimuose.
  • Paslaugų trikdymo ataka per giliai įdėtas geometrijų kolekcijas („GeometryCollections") arba milijono viršūnių daugiakampius.
  • Serverio pusės užklausų klastojimas (SSRF) įkeliant nuotolinius GeoJSON elementus.

Geriausia apsaugos praktika:

Istorinė kilmė ir svarbiausi etapai

2016IETF oficialiai patvirtina GeoJSON formatą kaip RFC 7946, nustatydamas WGS 84 koordinačių atskaitos sistemas privalomomis.
2014„GitHub" pristato gimtąjį interaktyvų vizualų žemėlapių atvaizdavimą visiems .geojson failams.
2008Howard Butler, Sean Gillies ir atvirojo kodo GIS bendruomenė paskelbia pradinę GeoJSON 1.0 specifikaciją.

Pagrindiniai privalumai

  • Gimtas žiniatinklio standartas: tiesiogiai integruojamas į JavaScript objektus naršyklės žemėlapių bibliotekose („Mapbox GL JS", „Leaflet").
  • Žmogui suprantama JSON struktūra leidžia nesudėtingai kurti programiškai, filtruoti ir derinti klaidas.
  • Laisva savybių schema: prie geometrinių formų galima tiesiogiai pridėti bet kokius pasirinktinius metaduomenis (gyventojų skaičių, pavadinimą, greitį, pajamas).

Techniniai apribojimai ir trūkumai

  • Teksto perteklius: slankiojo kablelio koordinates saugo kaip pasikartojančius ASCII skaitmenis, todėl failai užima daugiau vietos nei dvejetainiai „Shapefile" ar „FlatGeobuf".
  • RFC 7946 griežtai reikalauja [ilguma, platuma] tvarkos, kas dažnai klaidina programuotojus, pripratusius prie „platuma / ilguma".
  • Dideli daugiakampiai su milijonais viršūnių gali sulėtinti interneto naršyklės DOM atvaizdavimą.

Įdomūs techniniai faktai

  • Oficialus GeoJSON standartas koordinates rikiuoja tvarka [ilguma, platuma] (X, Y Dekarto tvarka), o tai yra visiškai priešingai nei kalba žmonės („platuma, ilguma").
  • Jei įkeliate .geojson failą į „GitHub", „GitHub" automatiškai atvaizduoja jį kaip interaktyvų, spustelėjamą žemėlapį.
  • RFC 7946 reikalauja, kad daugiakampio ribiniai žiedai atitiktų „dešinės rankos taisyklę": išoriniai žiedai turi būti sukti prieš laikrodžio rodyklę.

Dažniausiai užduodami techniniai klausimai

Kodėl mano GeoJSON koordientų tvarka yra [ilguma, platuma], o ne [platuma, ilguma]?

Kadangi matematikoje ir kompiuterinėje grafikoje koordientai visada nurodomi kaip (X, Y). Ilguma reiškia horizonalią X ašį, o platuma – vertikalią Y ašį.

Kaip konvertuoti KML arba „Shapefile“ į GeoJSON?

Naudodami File2File.app tiesiogiai savo naršyklėje per kelias sekundes galite konvertuoti „Google Earth“ KML failus arba „Esri Shapefile“ į švarų, žiniatinkliui paruoštą GeoJSON.

Kuo skiriasi GeoJSON ir „Shapefile“?

„Shapefile“ yra pasenęs dešimtojo dešimtmečio kelių failų dvejetainis formatas (.shp, .shx, .dbf). GeoJSON yra modernus, vieno failo atviro žiniatinklio formatas, parašytas švariu JSON.