GeoJSON (.geojson)

IETF Standard

Notația de obiecte JavaScript geografice (GeoJSON) este standardul universal, nativ pentru web, destinat codificării structurilor de date geografice, fiind utilizat pe scară largă în cartografia web modernă (Leaflet, Mapbox, OpenLayers) și în aplicațiile GIS.

Convertește din GEOJSON în KML

Convertor gratuit din GEOJSON în KML direct în browser. Convertește fișiere instantaneu pe dispozitivul tău.

Inspectează și Metadate

Sistemele de operare și analizatoarele de fișiere identifică fișierele GeoJSON prin inspectarea secvenței binare inițiale:

Selectează sau plasează fișierele aici

Conversie 100% privată în browser - fișierele nu părăsesc niciodată dispozitivul tău

sau lipește Ctrl+V
Garanție de confidențialitate cu zero transmisie în rețea: 0 octeți încărcați pe servere externe. Toată procesarea a avut loc local în sandbox-ul browserului tău.

Semnătura antetului la nivel de octet (Magic Bytes)

Sistemele de operare și analizatoarele de fișiere identifică fișierele GeoJSON prin inspectarea secvenței binare inițiale:

SEMNĂTURĂ HEX (OFFSET 0):

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

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

Standardizare: IETF RFC 7946

Specificații tehnice

Arhitectură containerJSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
CompresieUncompressed text (readily compressed over HTTP via Gzip or Brotli)
Endianitatea octețilorUTF-8 text stream
Spații de culoareN/A (Geographic Data)
Canale și structurăPoints, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
Dimensiuni maximeWorld Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
TransparențăNone
Streaming și progresivLine-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features

Matrice de comparație tehnică: GeoJSON vs Competitori

Atribut tehnicGeoJSON (Curent)KMLGPXSHP
Adopție în cartografia webImplicit 100% universal pentru GIS webImplicit pentru Google EarthImplicit pentru dispozitive GPS și fitnessStandard vechi pentru GIS desktop
Ordinea coordonatelor[Longitudine, Latitudine] (X, Y)Longitudine, Latitudine, AltitudineLatitudine, LongitudineCoordonate X, Y
Stil de sintaxăPerechi cheie-valoare JSON curateEtichete XML verboase (<kml>)Etichete XML verboase (<gpx>)Binare cu mai multe fișiere (.shp, .shx, .dbf)
Schema proprietățilorObiect de proprietăți JSON arbitrareEtichete de schemă ExtendedDataEtichete de schemă GPX fixeColoane fixe dBase IV (.dbf)

Moduri comune de corupție și ghid de recuperare hexazecimală

Punctele de pe hartă apar în ocean, lângă Antarctica, în loc de locația lor reală.

Cauză principală: Valorile pentru latitudine și longitudine au fost inversate accidental în matricea de coordonate.

Recuperare: Inversați pozițiile coordonatelor [lon, lat] folosind convertorul GeoJSON File2File.

Analiză de securitate și vectori de atac asupra parserului

Proprietățile GeoJSON pot conține intrări arbitrare de la utilizatori, care trebuie igienizate înainte de a fi afișate în ferestrele pop-up ale hărților pentru a preveni atacurile XSS.

Vectori de atac cunoscuți

  • Scripting intersite (XSS) prin HTML neescapat în proprietățile caracteristicilor GeoJSON afișate în indiciile de pe hartă (tooltips).
  • Refuz al serviciului prin GeometryCollections imbricate profund sau poligoane cu un milion de vertecși.
  • Forgery de cereri pe server (SSRF) prin încărcarea la distanță a caracteristicilor GeoJSON.

Cele mai bune practici de securitate:

Origini istorice și repere

2016IETF standardizează oficial formatul GeoJSON ca RFC 7946, impunând utilizarea sistemelor de referință coordonate WGS 84.
2014GitHub introduce redarea vizuală interactivă nativă a hărților pentru toate fișierele .geojson.
2008Howard Butler, Sean Gillies și comunitatea GIS open-source publică specificația inițială GeoJSON 1.0.

Avantaje cheie și beneficii

  • Standard web nativ: se mapează direct în obiecte JavaScript în bibliotecile de hărți pentru browser (Mapbox GL JS, Leaflet).
  • Structura JSON ușor de citit de către oameni permite crearea, filtrarea și depanarea programatică fără efort.
  • Schemă de proprietăți arbitrare: atașați orice metadate personalizate (populație, nume, viteză, venituri) direct la formele geometrice.

Limitări tehnice și dezavantaje

  • Verbozitatea textului: stochează coordonate în virgulă mobilă ca cifre ASCII repetate, ducând la dimensiuni de fișier mai mari decât fișierele Shapefile binare sau FlatGeobuf.
  • Standardul RFC 7946 impune strict ordinea [Longitudine, Latitudine], ceea ce îi confuzează frecvent pe dezvoltatorii obișnuiți cu „Lat/Long".
  • Poligoanele mari cu milioane de vertecși pot cauza încetiniri ale randării DOM în browserul web.

Curiozități tehnice interesante

  • Standardul oficial GeoJSON ordonează coordonatele ca [Longitudine, Latitudine] (ordine carteziană X, Y), ceea ce este opusul modului în care oamenii vorbesc de obicei („Latitudine, Longitudine").
  • Dacă adăugați un fișier .geojson într-un depozit GitHub, acesta îl va randa automat sub forma unei hărți interactive, pe care se poate da clic.
  • RFC 7946 impune ca inelele limită ale poligoanelor să respecte „regula mâinii drept": inelele exterioare trebuie să fie orientate în sens antiorar.

Întrebări tehnice frecvente

De ce coordonatele mele GeoJSON sunt ordonate [longitudine, latitudine] în loc de [latitudine, longitudine]?

Deoarece în matematică și grafică pe computer, coordonatele sunt întotdeauna specificate ca (X, Y). Longitudinea reprezintă axa X orizontală, iar Latitudinea reprezintă axa Y verticală.

Cum pot converti KML sau Shapefile în GeoJSON?

Poți converti fișiere Google Earth KML sau Esri Shapefiles în fișiere GeoJSON curate, gata pentru web, în câteva secunde, folosind File2File.app direct în browserul tău.

Care este diferența dintre GeoJSON și Shapefile?

Shapefile este un format binar învechit cu mai multe fișiere din anii '90 (.shp, .shx, .dbf). GeoJSON este un format web deschis modern, dintr-un singur fișier, scris în JSON curat.