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
[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]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
[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:
{
"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]- ↑ [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
[modifica]- 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.