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 webgeojson.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 geoespacial i que normalment proporciona mides d'arxiu més petit.

Història modifica

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.

Exemple modifica

{
 "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" }
 }
 }
 ]
}

Geometries modifica

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]]
 ]
 }
 ]
}

TopoJSON modifica

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 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.[8][9]

Esquema TopoJSON modifica

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ències modifica

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

Fonts modifica

Enllaços externs modifica