GeoJSON

format estandarditzat de representació d'elements geogràfics

GeoJSON[1] és un format d'estàndard obert dissenyat per representar elements geogràfics senzills, juntament amb els seus atributs no espacials. Està basat en el format JSON.

Infotaula de format de fitxerGeoJSON
Tipusformat obert i format de fitxer Modifica el valor a Wikidata
Extensiógeojson i json Modifica el valor a Wikidata
MIMEapplication/geo+json i application/vnd.geo+json Modifica el valor a Wikidata
Magic number7B Modifica el valor a Wikidata
DesenvolupadorInternet Engineering Task Force Modifica el valor a Wikidata
Extensió deJSON Modifica el valor a Wikidata
EstàndardRFC 7946: The GeoJSON Format (en) Tradueix Modifica el valor a Wikidata
Més informació
Stack ExchangeEtiqueta Modifica el valor a Wikidata
Wiki del format de fitxerGeoJSON Modifica el valor a Wikidata
LocFDDfdd000382 Modifica el valor a Wikidata
PRONOMfmt/1367 Modifica el valor a Wikidata
Lloc webhttps://geojson.org/ Modifica el valor a Wikidata

El format permet representar punts (per tant adreces i ubicacions), línies (per tant carrers, autopistes i fronteres), polígons (països, províncies, parcel·les de terra), i col·leccions d'elements d'aquests tipus. Les característiques representades no han de ser necessàriament entitats del món físic; dades de navegació i encaminament mòbil, per exemple, podrien ser descrites amb el format GeoJSON.[2]

El format GeoJSON difereix d'altres estàndards de GIS en què va ser escrit i es va mantenir no per una organització d'estàndards formal, sinó per un grup de treball de desenvolupadors d'Internet.[3]

Un format de dades notable basat en GeoJSON és TopoJSON, una extensió de GeoJSON que codifica la topologia geoespecial i que normalment proporciona mides d'arxiu més petit.

HistòriaModifica

El grup de discussió del format GeoJSON va començar a treballar el març de 2007 i l'especificació del format va ser finalitzada durant el juny de 2008.[4]

A l'abril de 2015 el grup Internet Engineering Task Force fundà el Geogràfic JSON working group[5] que va alliberar GeoJSON amb el codi RFC 7946 a l'agost de 2016.

ExempleModifica

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [102.0, 0.5]
      },
      "properties": {
        "prop0": "value0"
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "LineString",
        "coordinates": [
          [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
        ]
      },
      "properties": {
        "prop0": "value0",
        "prop1": 0.0
      }
    },
    {
      "type": "Feature",
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [
            [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
            [100.0, 1.0], [100.0, 0.0]
          ]
        ]
      },
      "properties": {
        "prop0": "value0",
        "prop1": { "this": "that" }
      }
    }
  ]
}

GeometriesModifica

Geometries primitives
Tipus Exemples
Punt  
{
    "type": "Point", 
    "coordinates": [30, 10]
}
LineString  
{
    "type": "LineString", 
    "coordinates": [
        [30, 10], [10, 30], [40, 40]
    ]
}
Polígon  
{
    "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]]
    ]
}
Geometries compostes
Tipus Exemples
MultiPoint  
{
    "type": "MultiPoint", 
    "coordinates": [
        [10, 40], [40, 30], [20, 20], [30, 10]
    ]
}
MultiLineString  
{
    "type": "MultiLineString", 
    "coordinates": [
        [[10, 10], [20, 20], [10, 40]], 
        [[40, 40], [30, 30], [40, 20], [30, 10]]
    ]
}
MultiPolygon  
{
    "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]]
        ]
    ]
}
GeometryCollection  
{
    "type": "GeometryCollection",
    "geometries": [
        {
            "type": "Point",
            "coordinates": [40, 10]
        },
        {
            "type": "LineString",
            "coordinates": [
                [10, 10], [20, 20], [10, 40]
            ]
        },
        {
            "type": "Polygon",
            "coordinates": [
                [[40, 40], [20, 45], [45, 30], [40, 40]]
            ]
        }
    ]
}

TopoJSONModifica

TopoJSON és una extensió de GeoJSON que codifica la topologia de les geometries. Més que representar geometries de manera discreta, les geometries als arxius TopoJSON són definides com a segments compartits entre les geometries anomenats arcs.[6] Els arcs són llistes de punts, mentre les i els polígons són definits com a llistes d'arcs. Cada arc és definit només una vegada, però pot ser referenciat diverses vegades per geometries diferents, reduint així la redundància i reduint la mida d'arxiu.[7] A més a més, el format TopoJSON facilita operacions que utilitzen topologia, com la simplificació de forma de les geometries, que conserven topologia, acoloriment automàtic de mapa i cartogrames.

Existeix una implementació de referència del l'especificació TopoJSON, disponible com programa de línia de comandes, capaç de codificar TopoJSON des de GeoJSON (o ESRI Shapefiles) i una llibreria per client en JavaScript per descodificar TopoJSON a GeoJSON un altra vegada. Aquest també té suport de la popular eina OGR des de la versió 1.11, mentre que PostGIS hi dona suport des de la versió 2.1.0.[8][9]

Esquema TopoJSONModifica

Donada una capa de dades GIS situada a prop de les coordenades latitud 0° i longitud 0°, l'arxiu TopoJSON conté totes les geometries i metadades organitzades de la manera següent:

 
Formes representades amb TopoJSON
{
  "type":"Topology",
  "transform":{
    "scale": [1,1],
    "translate": [0,0]
  },
  "objects":{ 
    "two-squares":{
      "type": "GeometryCollection",
      "geometries":[
        {"type": "Polygon", "arcs":[[0,1]],"properties": {"name": "Left_Polygon" }},
        {"type": "Polygon", "arcs":[[2,-1]],"properties": {"name": "Right_Polygon" }}
      ]
    },
    "one-line": {
      "type":"GeometryCollection",
      "geometries":[
        {"type": "LineString", "arcs": [3],"properties":{"name":"Under_LineString"}}
      ]
    },
    "two-places":{
      "type":"GeometryCollection",
      "geometries":[
        {"type":"Point","coordinates":[0,0],"properties":{"name":"Origine_Point"}},
        {"type":"Point","coordinates":[0,-1],"properties":{"name":"Under_Point"}}
      ]
    }
  },
  "arcs": [
    [[1,2],[0,-2]],
    [[1,0],[-1,0],[0,2],[1,0]],
    [[1,2],[1,0],[0,-2],[-1,0]],
    [[0,-1],[2,0]]
  ]
}

ReferènciesModifica

  1. [rfc:7946 The GeoJSON Format]
  2. «Providing Directions». [Consulta: 9 agost 2020].
  3. «GeoJSON Info Page». [Consulta: 9 agost 2020].
  4. «The GeoJSON March 2007 Archive by thread». [Consulta: 9 agost 2020].
  5. «Geographic JSON (geojson) -». [Consulta: 9 agost 2020].
  6. «topojson/topojson-specification», 26-06-2020. [Consulta: 9 agost 2020].
  7. «topojson/topojson» (en anglès). [Consulta: 9 agost 2020].
  8. «Release/1.11.0-News – GDAL». [Consulta: 9 agost 2020].
  9. «AsTopoJSON». [Consulta: 9 agost 2020].

FontsModifica