Articulo de referencia

GeoJSON

.json , .geojson "},"_nomimecode":{"wt":"on"},"mime":{"wt":" application/geo+json "},"type code":{"wt":""},"uniform type":{"wt":""},"conforms to":{"wt":""},"magic":{"wt":""},"ow...

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

Las características incluyen puntos (por lo tanto, direcciones y ubicaciones), cadenas de líneas (por lo tanto, calles, carreteras y límites), polígonos (países, provincias, extensiones de tierra) y colecciones de varias partes de estos tipos. Las características de GeoJSON no se limitan a representar entidades del mundo físico únicamente; las aplicaciones móviles de enrutamiento y navegación, por ejemplo, podrían 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 es mantenido no por una organización de estándares formal, sino por un grupo de trabajo de desarrolladores de Internet. [ 3 ]

Un derivado notable de GeoJSON es TopoJSON , una extensión de GeoJSON que codifica la topología geoespacial y que normalmente proporciona archivos de menor tamaño.

Historia

El grupo de trabajo y la discusión 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

{ "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" } } }] }
Mapa
Ejemplo de GeoJSON ( datos del mapa )

Geometrías

Los puntos son [x, y] o [x, y, z]. Pueden ser [longitud, latitud] o [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]

El sistema de referencia de coordenadas para todas las coordenadas GeoJSON es un sistema de referencia de coordenadas geográficas, que utiliza el datum del Sistema Geodésico Mundial 1984 (WGS 84) [WGS84], con unidades de longitud y latitud en grados decimales. [ 8 ]

GeoJSON delimitado por saltos de línea

Una alternativa a GeoJSON consiste en codificar una característica geográfica por línea, utilizando saltos de línea (o caracteres separadores de registros) para indicar la separación entre los registros.

Este formato puede ser mucho más rápido y eficiente de analizar que el GeoJSON normal, ya que las herramientas pueden leer registros individuales en paralelo. Este formato es similar al JSON delimitado por saltos de línea .

Las variantes de GeoJSON delimitado por saltos de línea incluyen:

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

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 componen a partir de segmentos de línea compartidos llamados arcos . [ 11 ] 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 puede ser referenciado varias veces por diferentes formas, lo que reduce la redundancia y disminuye el tamaño del archivo. [ 12 ] Además, TopoJSON facilita las aplicaciones que utilizan la topología, como la simplificación de formas que preserva la topología, el coloreado automático de mapas y los cartogramas .

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

Esquema TopoJSON

Dada una forma GIS cercana a las coordenadas 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 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" : "Origin_Point" }}, { "type" : "Point" , "coordinates" : [ 0 , - 1 ], "properties" : { "name" :"Under_Point" }} ] } }, "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. 1 2 Butler, Howard; Daly, Martin; Doyle, Allan; Gillies, Sean; Hagen, Stefan; Schaub, Tim (agosto de 2016). RFC 7946 . IETF . doi : 10.17487/RFC7946 .
  2. "Proporcionando instrucciones" . developer.apple.com .
  3. "Página de información de GeoJSON" . lists.geojson.org .
  4. "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 #3.1.1" .
  8. 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.
  9. Gillies, Sean (abril de 2017). Secuencias de texto GeoJSON (Informe). Grupo de trabajo de ingeniería de Internet.
  10. "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 .
  11. "topojson/topojson-specification" . 11 de diciembre de 2020 vía GitHub.
  12. «topojson/topojson» . GitHub .
  13. "Release/1.11.0-News – GDAL" . trac.osgeo.org .
  14. «ComoTopoJSON» . postgis.net .

Fuentes

  • Andrews, Christopher (18 de septiembre de 2007). "Tecnología emergente: AJAX y GeoJSON" . Archivado del original el 22 de mayo de 2009.
  • "Geoweb Guru: Descripción técnica: GeoJSON" . 16 de febrero de 2009. Archivado del original el 21 de febrero de 2009.
  • Lambert, Chris (4 de mayo de 2009). "Blog de desarrolladores de Google Geo: Crea a partir de tu ubicación pública de Latitude con GeoJSON y KML" .
  • Sitio web oficial
  • topojson/topojson