GeoJSON (.geojson)

IETF Standard

Geographic JavaScript Object Notation (GeoJSON) è lo standard universale e nativo per il web per la codifica di strutture di dati geografici, ampiamente utilizzato nella mappatura web moderna (Leaflet, Mapbox, OpenLayers) e nelle applicazioni GIS.

Converti da GEOJSON a KML

Convertitore gratuito da GEOJSON a KML nel browser. Converti i file istantaneamente sul tuo dispositivo.

Ispeziona e metadati

I sistemi operativi e gli analizzatori di file identificano i file GeoJSON ispezionando la sequenza di byte binari iniziale:

Seleziona o rilascia i file qui

Conversione 100% privata nel browser: i file non lasciano mai il tuo dispositivo

o incolla Ctrl+V
Garanzia di privacy con zero trasmissioni di rete: 0 byte caricati su server esterni. Tutta l'elaborazione è avvenuta localmente nella sandbox del tuo browser.

Firma dell'intestazione a livello di byte (Magic Bytes)

I sistemi operativi e gli analizzatori di file identificano i file GeoJSON ispezionando la sequenza di byte binari iniziale:

FIRMA ESADECIMALE (OFFSET 0):

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

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

Standardizzazione: IETF RFC 7946

Specifiche tecniche

Architettura del containerJSON document adhering to RFC 7946 representing geographic Features, FeatureCollections, and Geometries
CompressioneUncompressed text (readily compressed over HTTP via Gzip or Brotli)
Endianness dei byteUTF-8 text stream
Spazi coloreN/A (Geographic Data)
Canali e strutturaPoints, MultiPoints, LineStrings, MultiLineStrings, Polygons, MultiPolygons, GeometryCollections, and custom properties
Dimensioni massimeWorld Geodetic System 1984 (WGS 84) coordinate space: Longitude (-180 to +180), Latitude (-90 to +90)
TrasparenzaNone
Streaming e progressivoLine-delimited GeoJSON (GeoJSONL / GeoJSONSeq) enables continuous streaming of millions of features

Matrice di confronto tecnico: GeoJSON vs Concorrenti

Attributo tecnicoGeoJSON (Corrente)KMLGPXSHP
Adozione nella Mappatura WebPredefinito GIS web universale al 100%Predefinito di Google EarthPredefinito per dispositivi GPS e fitnessStandard legacy GIS desktop
Ordine delle Coordinate[Longitudine, Latitudine] (X, Y)Longitudine, Latitudine, AltitudineLatitudine, LongitudineCoordinate X, Y
Stile della SintassiCoppie chiave-valore JSON puliteTag XML dettagliati (<kml>)Tag XML dettagliati (<gpx>)Binario multi-file (.shp, .shx, .dbf)
Schema delle ProprietàOggetto di proprietà JSON arbitrarioTag di schema ExtendedDataTag di schema GPX fissiColonne fisse dBase IV (.dbf)

Modalità di corruzione comuni e guida al recupero Hex

I punti della mappa compaiono nell'oceano vicino all'Antartide anziché nella loro posizione reale.

Causa principale: I valori di Latitudine e Longitudine sono stati scambiati accidentalmente nell'array delle coordinate.

Ripristino: Inverti le posizioni delle coordinate [lon, lat] utilizzando il convertitore GeoJSON di File2File.

Analisi di sicurezza e vettori di attacco del parser

Le proprietà GeoJSON possono contenere input utente arbitrari che devono essere igienizzati prima di essere renderizzati nei popup delle mappe per prevenire attacchi XSS.

Vettori di attacco noti

  • Cross-site scripting (XSS) tramite HTML non sottoposto a escape nelle proprietà delle feature GeoJSON renderizzate nei tooltip della mappa.
  • Denial of service tramite GeometryCollections profondamente annidate o poligoni con milioni di vertici.
  • Server-Side Request Forgery tramite il caricamento di feature GeoJSON remote.

Migliori pratiche difensive:

Origini storiche e tappe fondamentali

2016L'IETF standardizza ufficialmente il formato GeoJSON come RFC 7946, imponendo sistemi di riferimento delle coordinate WGS 84.
2014GitHub introduce il rendering visivo interattivo nativo per tutti i file .geojson.
2008Howard Butler, Sean Gillies e la comunità GIS open-source pubblicano la specifica iniziale GeoJSON 1.0.

Vantaggi principali e pro

  • Standard web nativo: si mappa direttamente in oggetti JavaScript nelle librerie di mappatura per browser (Mapbox GL JS, Leaflet).
  • La struttura JSON leggibile dall'uomo consente la creazione, il filtraggio e il debug programmatici senza sforzo.
  • Schema di proprietà arbitrario: associa qualsiasi metagramma personalizzato (popolazione, nome, velocità, ricavi) direttamente alle forme geometriche.

Limiti tecnici e svantaggi

  • Verbosità del testo: memorizza coordinate a virgola mobile come cifre ASCII ripetute, portando a dimensioni di file maggiori rispetto a Shapefile binari o FlatGeobuf.
  • La RFC 7946 impone rigorosamente l'ordine [Longitudine, Latitudine], il che confonde frequentemente gli sviluppatori abituati a 'Lat/Long'.
  • Poligoni di grandi dimensioni con milioni di vertici possono causare rallentamenti nel rendering del DOM del browser web.

Curiosità tecniche interessanti

  • Lo standard GeoJSON ufficiale ordina le coordinate come [Longitudine, Latitudine] (ordine cartesiano X, Y), che è l'esatto opposto di come parlano le persone ('Latitudine, Longitudine').
  • Se esegui il commit di un file .geojson su GitHub, GitHub lo renderizza automaticamente come mappa interattiva e cliccabile.
  • La RFC 7946 stabilisce che gli anelli di confine dei poligoni devono seguire la 'regola della mano destra': gli anelli esterni devono essere avvolti in senso antiorario.

Domande tecniche frequenti

Perché le mie coordinate GeoJSON sono ordinate come [longitudine, latitudine] anziché [latitudine, longitudine]?

Perché in matematica e computer grafica le coordinate vengono sempre specificate come (X, Y). La longitudine rappresenta l'asse X orizzontale e la latitudine rappresenta l'asse Y verticale.

Come posso convertire KML o Shapefile in GeoJSON?

Puoi convertire file KML di Google Earth o Shapefile Esri in GeoJSON pulito e pronto per il web in pochi secondi utilizzando File2File.app direttamente nel tuo browser.

Qual è la differenza tra GeoJSON e Shapefile?

Lo Shapefile è un formato binario multifile obsoleto degli anni '90 (.shp, .shx, .dbf). GeoJSON è un formato web aperto, moderno e a file singolo scritto in JSON pulito.