GeoJSON

Subconjunto JSON para datos geoespaciales

GeoJSON
Extensiones de nombre de archivo.json,.geojson
Tipo de medio de Internetapplication/geo+json[1]
Tipo de formatoFormato de archivo SIG
Extendido desdeJSON
EstándarRFC  7946
¿ Formato abierto ?
Sitio webgeojson.org

GeoJSON [1] es un formato estándar abierto diseñado para representar características geográficas simples , junto con sus atributos no espaciales. Se basa en el formato JSON .

Las características incluyen puntos (es decir, direcciones y ubicaciones), cadenas de líneas (es decir, calles, autopistas y límites), polígonos (países, provincias, extensiones de tierra) y colecciones de varias partes de estos tipos. Las características GeoJSON no se limitan a representar entidades del mundo físico únicamente; las aplicaciones de navegación y enrutamiento móvil, por ejemplo, pueden describir su cobertura de servicio utilizando GeoJSON. [2]

El formato GeoJSON se diferencia de otros estándares de sistemas de información geográfica en que fue escrito y mantenido no por una organización de estándares formal, sino por un grupo de trabajo de desarrolladores en Internet. [3]

Un descendiente notable de GeoJSON es TopoJSON, una extensión de GeoJSON que codifica la topología geoespacial y que generalmente proporciona tamaños de archivo más pequeños.

Historia

El grupo de trabajo y el debate sobre el formato GeoJSON comenzaron en marzo de 2007 [4] y la especificación del formato se finalizó en junio de 2008.

En abril de 2015, el Grupo de Trabajo de Ingeniería de Internet fundó el grupo de trabajo Geographic JSON [5] que publicó GeoJSON como RFC 7946 en agosto de 2016.

Ejemplo

{ "tipo" : "FeatureCollection" , "características" : [ { "tipo" : "Característica" , "geometría" : { "tipo" : "Punto" , "coordenadas" : [ 102.0 , 0.5 ] }, "propiedades" : { "prop0" : "valor0" } }, { "tipo" : "Característica" , "geometría" : { "tipo" : "Cadena de líneas" , "coordenadas" : [ [ 102.0 , 0.0 ], [ 103.0 , 1.0 ], [ 104.0 , 0.0 ], [ 105.0 , 99.0 ] ] }, "propiedades" : { "prop0" : "valor0" , "prop1" : 0.0 } }, { "tipo" : "Característica" , "geometría" : { "tipo" : "Polígono" , "coordenadas" : [ [ [ 100.0 , 0.0 ], [ 101.0 , 0.0 ], [ 101.0 , 1.0 ], [ 100.0 , 1.0 ], [ 100.0 , 0.0 ] ] } , "propiedades" : { "prop0" : "valor0" , "prop1" : { "esto" : "eso" } } } ] }                                                                                   
Mapa
Ejemplo de GeoJSON (datos del mapa)

|

Geometrías

Los puntos son [x, y] o [x, y, z]. Pueden ser [longitud, latitud] o [coordenadas este, norte] . La elevación, en metros, [6] es un tercer número opcional. Son números decimales. [7]

Por ejemplo, Londres (51,5074° Norte, 0,1278° Oeste) es [-0,1278, 51,5074]

Primitivas de geometría
TipoEjemplos
Punto
{ "tipo" : "Punto" , "coordenadas" : [ 30.0 , 10.0 ] }      
Cadena de líneas
{ "tipo" : "LineString" , "coordenadas" : [ [ 30.0 , 10.0 ], [ 10.0 , 30.0 ], [ 40.0 , 40.0 ] ] }            
Polígono
{ "tipo" : "Polígono" , "coordenadas" : [ [ [ 30.0 , 10.0 ], [ 40.0 , 40.0 ], [ 20.0 , 40.0 ], [ 10.0 , 20.0 ], [ 30.0 , 10.0 ] ] ] }                  
{ "tipo" : "Polígono" , "coordenadas" : [ [ [ 35.0 , 10.0 ], [ 45.0 , 45.0 ], [ 15.0 , 40.0 ], [ 10.0 , 20.0 ], [ 35.0 , 10.0 ] ], [ [ 20.0 , 30.0 ], [ 35.0 , 35.0 ], [ 30.0 , 20.0 ], [ 20.0 , 30.0 ] ] ] }                            
Geometrías multiparte
TipoEjemplos
Multipunto
{ "tipo" : "MultiPoint" , "coordenadas" : [ [ 10.0 , 40.0 ], [ 40.0 , 30.0 ], [ 20.0 , 20.0 ], [ 30.0 , 10.0 ] ] }              
Cadena de múltiples líneas
{ "tipo" : "MultiLineString" , "coordenadas" : [ [ [ 10.0 , 10.0 ], [ 20.0 , 20.0 ], [ 10.0 , 40.0 ] ], [ [ 40.0 , 40.0 ], [ 30.0 , 30.0 ], [ 40.0 , 20.0 ], [ 30.0 , 10.0 ] ] ] }                        
Multipolígono
{ "tipo" : "MultiPolígono" , "coordenadas" : [ [ [ [ 30.0 , 20.0 ], [ 45.0 , 40.0 ], [ 10.0 , 40.0 ], [ 30.0 , 20.0 ] ] ], [ [ [ 15.0 , 5.0 ], [ 40.0 , 10.0 ], [ 10.0 , 20.0 ], [ 5.0 , 10.0 ] , [ 15.0 , 5.0 ] ] ] }                                 
{ "tipo" : "MultiPolígono" , "coordenadas" : [ [ [ [ 40.0 , 40.0 ], [ 20.0 , 45.0 ], [ 45.0 , 30.0 ], [ 40.0 , 40.0 ] ] ], [ [ [ 20.0 , 35.0 ], [ 10.0 , 30.0 ], [ 10.0 , 10.0 ], [ 30.0 , 5.0 ], [ 45.0 , 20.0 ], [ 20.0 , 35.0 ] ], [ [ 30.0 , 20.0 ], [ 20.0 , 15.0 ], [ 20.0 , 25.0 ], [ 30.0 , 20.0 ] ] ] ] }                                             
Colección Geometría
{ "tipo" : "GeometryCollection" , "geometrías" : [ { "tipo" : "Punto" , "coordenadas" : [ 40.0 , 10.0 ] }, { "tipo" : "Cadena de líneas" , "coordenadas" : [ [ 10.0 , 10.0 ], [ 20.0 , 20.0 ], [ 10.0 , 40.0 ] ] }, { "tipo" : "Polígono" , "coordenadas" : [ [ [ 40.0 , 40.0 ], [ 20.0 , 45.0 ], [ 45.0 , 30.0 ], [ 40.0 , 40.0 ] ] ] } ] }                                          

GeoJSON delimitado por nueva línea

Una alternativa a GeoJSON es codificar una característica geográfica por línea, con saltos de línea (o caracteres separadores de registros) que designan la separación entre registros.

Este formato puede analizarse de forma mucho más rápida y eficiente que el GeoJSON normal, ya que las herramientas pueden leer registros individuales en paralelo. Este formato es similar al JSON delimitado por nuevas líneas.

Las variantes de GeoJSON delimitado por nuevas líneas incluyen:

  • GeoJSONSeq (abreviatura de GeoJSON Text Sequences): con caracteres separadores de registros (RS) que separan las características [8]
  • GeoJSONL (abreviatura de GeoJSON Lines): con caracteres de nueva línea que separan las características [9]

TopoJSON

TopoJSON es una extensión de GeoJSON que codifica la topología . En lugar de representar geometrías de forma discreta, las geometrías en los archivos TopoJSON se unen a partir de segmentos de línea compartidos llamados arcos . [10] Los arcos son secuencias de puntos, mientras que las cadenas de líneas y los polígonos se definen como secuencias de arcos. Cada arco se define solo una vez, pero se puede hacer referencia a él varias veces mediante diferentes formas, lo que reduce la redundancia y disminuye el tamaño del archivo. [11] Además, TopoJSON facilita las aplicaciones que utilizan la topología, como la simplificación de formas que preserva la topología, la coloración automática de mapas y los cartogramas .

Hay disponible una implementación de referencia de la especificación TopoJSON como herramienta de línea de comandos para codificar TopoJSON a partir de GeoJSON (o ESRI Shapefiles) y una biblioteca de JavaScript del lado del cliente para decodificar TopoJSON nuevamente a GeoJSON. TopoJSON también es compatible con la popular herramienta OGR a partir de la versión 1.11 [12] y con PostGIS a partir de la versión 2.1.0. [13]

Esquema TopoJSON

Dada una forma SIG cerca de las coordenadas de latitud 0° y longitud 0°, un archivo topojson simple pero válido y completo que contiene todos los metadatos, elementos Polygon , LineString , Point , arcos y propiedades se define de la siguiente manera:

Formas de topografia
{ "tipo" : "Topología" , "transformar" : { "escala" : [ 1 , 1 ], "traducir" : [ 0 , 0 ] }, "objetos" : { "dos-cuadrados" : { "tipo" : "GeometryCollection" , "geometrías" : [ { "tipo" : "Polígono" , "arcos" : [[ 0 , 1 ]], "propiedades" : { "nombre" : "Polígono_izquierdo" }}, { "tipo" : "Polígono" , "arcos" : [[ 2 , - 1 ]], "propiedades" : { "nombre" : "Polígono_derecho" }} ] }, "una-línea" : { "tipo" : "GeometryCollection" , "geometrías" : [ { "tipo" : "Cadena_de_líneas" , "arcos" : [ 3 ], "propiedades" : { "nombre" : "Cadena_de_líneas_subyacente" }} ] }, "dos-lugares" : { "tipo" : "Collection_Geometry" , "geometrías" : [ { "tipo" : "Punto" , "coordenadas" : [ 0 , 0 ], "propiedades" : { "nombre" : "Punto_de_origen" }}, { "tipo" : "Punto" , "coordenadas" : [ 0 , - 1 ], "propiedades" : { "nombre" :"Punto_bajo" }} ] } }, "arcos" : [ [[ 1 , 2 ],[ 0 , - 2 ]], [[ 1 , 0 ],[ - 1 , 0                                                 ],[ 0 , 2 ],[ 1 , 0 ]], [[ 1 , 2 ] ,[ 1 , 0 ],[ 0 , - 2 ],[ - 1 , 0 ]], [[ 0 , - 1 ] ,[ 2 , 0 ]] ] }   

Véase también

Referencias

  1. ^ ab Butler, Howard; Daly, Martin; Doyle, Allan; Gillies, Sean; Hagen, Stefan; Schaub, Tim (agosto de 2016). RFC 7946. IETF . doi : 10.17487/RFC7946 .
  2. ^ "Proporcionar direcciones". developer.apple.com .
  3. ^ "Página de información de GeoJSON". lists.geojson.org .
  4. ^ "El archivo GeoJSON de marzo de 2007 por hilo". lists.geojson.org .
  5. ^ "JSON geográfico (geojson) -". datatracker.ietf.org .
  6. ^ Butler, H.; Daly, M.; Doyle, A.; Gillies, Sean; Schaub, T.; Hagen, Stefan (agosto de 2016). El formato GeoJSON (informe). Grupo de trabajo de ingeniería de Internet.
  7. ^ Butler, H.; Daly, M.; Doyle, A.; Gillies, Sean; Schaub, T.; Hagen, Stefan (agosto de 2016). "GeoJSON RFC n.° 3.1.1".
  8. ^ Gillies, Sean (abril de 2017). Secuencias de texto GeoJSON (informe). Grupo de trabajo de ingeniería de Internet.
  9. ^ "GeoJSONL: Un formato optimizado para grandes conjuntos de datos geográficos". Interline Technologies . 11 de septiembre de 2018 . Consultado el 11 de noviembre de 2024 .
  10. ^ "topojson/topojson-specification". 11 de diciembre de 2020 – vía GitHub.
  11. ^ "topojson/topojson". GitHub .
  12. ^ "Lanzamiento/1.11.0-Novedades – GDAL". trac.osgeo.org .
  13. ^ "AsTopoJSON". postgis.net .

Fuentes

  • Andrews, Christopher (18 de septiembre de 2007). "Tecnología emergente: AJAX y GeoJSON". Archivado desde el original el 22 de mayo de 2009.
  • "Geoweb Guru: Technical Overview: GeoJSON". 16 de febrero de 2009. Archivado desde el original el 21 de febrero de 2009.
  • Lambert, Chris (4 de mayo de 2009). "Blog para desarrolladores de Google Geo: Cree sobre la base de su ubicación de Latitude pública con GeoJSON y KML".
  • Sitio web oficial
  • https://geojsonlint.com
  • topojson/topojson
Obtenido de "https://es.wikipedia.org/w/index.php?title=GeoJSON&oldid=1263977085"