GeoJSON[1] è un formato aperto utilizzato per archiviare una collezione di geometrie spaziali il cui attributi sono descritti attraverso JavaScript Object Notation. Le geometrie possibili sono punti (come ad esempio indirizzi o toponimi), linee spezzate (come percorsi, strade e confini), poligoni (paesi, province, laghi), e collezioni multiple di queste tipologie. Le geometrie GeoJSON non devono però necessariamente rappresentare entità geofrafiche; i), e collezioni multiple di queste tipologie. Le geometrie GeoJSON non devono però necessariamente rappresentare entità geofrafiche: ad esempio, i software di navigazione assistita possono usarlo per descrivere l'area di copertura del servizio.[2]

GeoJSON
Estensione.geojson, .json
Tipo MIMEapplication/vnd.geo+json
1ª pubblicazione2007
Ultima versione2008 (2008)
TipoScambio dati
Estensione diJSON
Formato aperto?
Sito webgeojson.org

TIl formato GeoJSON si differisce dagli altri standard Geographical Information System in quanto è scritto e mantenuto da un gruppo di lavoro di sviluppatori[3] e non da organi di standard internazionali.

Un formato molto interessante derivato da GeoJSON TopoJSON. Si tratta di una estensione di questo formato di file che archivia topologie spaziali e, pertanto, genera file di dimensioni inferiori.

Storia

Il grouppo di lavoro e di discussione del formato GeoJSON è nato nel marzo 2007[4] è le specifiche finali del formato sono state completate nel giugno 2008.

Esempio

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [11.1215698,46.0677293]
      },
      "properties": {
        "name": "Fontana dell'Aquila"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [
           [11.1214686,46.0677385],[11.121466,46.0677511],[11.1213806,46.0681452],          
           [11.1213548,46.0682642],[11.1213115,46.0684385],[11.1212897,46.0685261],
           [11.1212678,46.0686443]
        ]
      },
      "properties": {
        "lanes": 1,
        "name": "Via Rodolfo Belenzani"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [11.1209262, 46.0676632],[11.1209201, 46.0676444],[11.1209473, 46.0675811],
            [11.1210082, 46.0674396],[11.1209909, 46.0674359],[11.1209669, 46.0674306],
            [11.120973, 46.067375],[11.1209798, 46.067318],[11.1209906, 46.067313],
            [11.1210021, 46.0673079],[11.1210102, 46.0672175],[11.1210154, 46.0670829],
            [11.1209979, 46.0670731],[11.1209861, 46.0670671],[11.121003, 46.0670034],
            [11.1210228, 46.0670051],[11.1210484, 46.0670073],[11.1216367, 46.0670503],
            [11.1216304, 46.0670981],[11.1217471, 46.0671064],[11.1218604, 46.0671144],
            [11.1218662, 46.0670763],[11.1218916, 46.0670783],[11.1218655, 46.0672963],
            [11.1218347, 46.0675014],[11.1218793, 46.0675034],[11.1219202, 46.0675053],
            [11.121918, 46.067554],[11.1220355, 46.0675565],[11.1220264, 46.067619],
            [11.1220237, 46.0676378],[11.1219858, 46.0676408],[11.121853, 46.0676517],
            [11.1217408, 46.0676621],[11.1215635, 46.0677421],[11.1214686, 46.0677385],
            [11.1213621, 46.0677348],[11.121226, 46.067723],[11.1210982, 46.067711],
            [11.1210937, 46.0677159],[11.1209933, 46.0677017],[11.1209337, 46.0676859],
            [11.1209262, 46.0676632]
          ]
        ]
      },
      "properties": {
        "name": "Piazza del Duomo",
        "surface": "cobblestone"
      }
    }
  ]
}

Geometrie

primitive geometriche
tipo esempi
Punto  
{
    "type": "Point", 
    "coordinates": [46.0677293, 11.1215698]
}
Linea spezzata  
{
    "type": "LineString", 
    "coordinates": [
        [11.1212678, 46.0686443],[11.1212316,46.0688409]
    ]
}
Poligono  
{
    "type": "Polygon", 
    "coordinates": [
        [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]]
    ]
}
 
{
    "type": "Polygon", 
    "coordinates": [
        [[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]], 
        [[20, 30], [35, 35], [30, 20], [20, 30]]
    ]
}
Geometrie multiparti
Tipo Esempi
Multi punto  
{
    "type": "MultiPoint", 
    "coordinates": [
        [10, 40], [40, 30], [20, 20], [30, 10]
    ]
}
Multi linee spezzate  
{
    "type": "MultiLineString", 
    "coordinates": [
        [[10, 10], [20, 20], [10, 40]], 
        [[40, 40], [30, 30], [40, 20], [30, 10]]
    ]
}
Multipoligono  
{
    "type": "MultiPolygon", 
    "coordinates": [
        [
            [[30, 20], [45, 40], [10, 40], [30, 20]]
        ], 
        [
            [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]
        ]
    ]
}
 
{
    "type": "MultiPolygon", 
    "coordinates": [
        [
            [[40, 40], [20, 45], [45, 30], [40, 40]]
        ], 
        [
            [[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20, 35]], 
            [[30, 20], [20, 15], [20, 25], [30, 20]]
        ]
    ]
}

Supported software

GeoJSON è supportato da moltissimo software GIS, inclusi OpenLayers,[5] Leaflet, Geoforge,[6] GeoServer,[7] GeoDjango,[8] GDAL,[9] Safe Software FME,[10] and CartoDB,[11] È inoltre possibile utilizzare GeoJSON con PostGIS[12] e Mapnik,[13] entrambi attraverso l'uso della libreria di conversione GDAL OGR.

Bing Maps, Yahoo! e Google supportano anche GeoJSON nello loro API.

L'integrazione con Google Maps è possibile attraverso l'uso di una apposita libreria[14].

GitHub offre inoltre la visualizzazione dei dati in GeoJSON.[15]

Il progetto geojson.io permette di visualizzare, modificare e distribuire file geojson direttamente da web.

TopoJSON

TopoJSON è una estensione di GeoJSON che codifica le geometrie in topologie spaziali. Le geometrie vengono pertanto rappresentante dividendole in archi.[16] Gli archi sono sequenze di punti, mentre le linee e i poligoni sono definiti come sequenze di archi. Ogni arco è definito una volta sola, ma può essere riutilizzato infinite volte per descrivere una geometria, l'effetto che se ne produce è una notevole riduzione di ridondanza di informazioni e, pertanto, la riduzione delle dimensioni del file.[17] Inoltre, TopoJSON facilità le applicazioni che fanno uso di topologia come la colorazione automatica di mappe o cartogrammi.

Una referenza dell'implementazione delle TopoJSON specifiche è disponibile attraverso un tool a linea di comando per generare un TopoJSON partendo da un GeoJSON (o ESRI Shapefiles) e, attraverso un javascript client side, è poi possibile trasformare dati archiviati in TopoJSON in GeoJSON.

TopoJSON è inoltre supportato da famoso tool OGR dalla versione 1.11[18] e da PostGIS dalla versione 2.1.0.[19]

Referenze

Risorse

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica