# GeoJSON

GeoJSON é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.
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.
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.
Un format de dades notable basat en GeoJSON és TopoJSON, una extensió de GeoJSON que codifica la topologia geoespacial i que normalment proporciona mides d'arxiu més petit.

## Història

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.
A l'abril de 2015 el grup Internet Engineering Task Force fundà el Geogràfic JSON working group que va alliberar GeoJSON amb el codi RFC 7946 a l'agost de 2016.

## Exemple
### Geometries

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]] ] } |
| Polígon | { "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]] ] ] } |
| MultiPolygon | { "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]] ] } ] } |

## TopoJSON

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. 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. 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 una 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.

### Esquema TopoJSON

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:

## Referències

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

## Fonts

* Lloc web de GeoJSON
* Especificació de GeoJSON
* Andrews, Christopher. «Emerging Technology: AJAX and GeoJSON», 18-09-2007. Arxivat de l'original el 22 maig 2009.
* «Geoweb Guru: Technical Overview: GeoJSON», 16-02-2009. Arxivat de l'original el 2009-02-21.
* Lambert, Chris. «Google Geo Developers Blog: Build on top of your public Latitude location with GeoJSON & KML», 04-05-2009.

## Enllaços externs

* Extensió TopoJSON a GitHub
* Especificació de TopoJSON a GitHub