GeoJSON
Tipus | format obert i format de fitxer |
---|---|
Extensió | geojson i json |
MIME | application/geo+json i application/vnd.geo+json |
Magic number | 7B |
Desenvolupador | Internet Engineering Task Force |
Extensió de | JSON |
Estàndard | RFC 7946: The GeoJSON Format (en) |
Més informació | |
Stack Exchange | Etiqueta |
Wiki del format de fitxer | GeoJSON |
LocFDD | fdd000382 |
PRONOM | fmt/1367 |
Lloc web | geojson.org |
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.
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
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
{ "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
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]] ] } |
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
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
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:
{ "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
- ↑ [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