GeoJSON & Java

GeoJSON es un estándar abierto para representar entidades geográficas y sus atributos. Basando en el formato JSON (JavaScript Object Notation), GeoJSON hereda las ventajas de ser legible, simple y ligero. Es por eso que hoy en día muchas tecnologías y servicios soportan GeoJSON.

Esri lleva soportando este formato desde hace muchos años a través de diferentes soluciones y iniciativas como ArcGIS Open Data y projectos Open Source en Javascript.

Cosas interesantes a conocer de este formato:

  • GeoJSON define un tipo llamando Entidad (Feature).
  • Una entidad tiene una geometría y propiedades opcionales.
  • Los tipos de geometría soportados aquí son: Punto (Point), Segmento (LineString), Polígono (Polygon),  Multipunto (MultiPoint), MultiSegmento (MultiLineString) y MultiPolígono (MultiPolygon).
  • Las propiedades no son más que pares nombre-valor
  • Un conjunto de entidades se representar como una FeatureCollection

En el siguiente ejemplo se muestra el aeropuerto de los Ángles como una entidad en GeoJSON. La entidad es de tipo punto con un valor de longitud-latitud. El código del aeropuerto es LAX y su elevación es de 38 metros.

Mapeo de entidades GeoJSON con ArcGIS Runtime para Java

La estructura de entidades en la Runtime de ArcGIS es muy similar a la del GeoJSON, consiste en una geometría y en atributos opcionales. Estas pueden ser mapeadas directamente a los atributos de una entidad de ArcGIS Runtime como se muestra en la siguiente tabla:

Vamos a ver un ejemplo práctico sencillo usando Java.

Añadir entidades GeoJSON a un programa hecho con el ArcGIS Runtime

Para consumir GeoJSON en las aplicaciones será necesario parsear los datos en GeoJSON y crear entidades del Runtime a partir de ahí.  Puedes ver un ejemplo en el repositorio del Runtime de ArcGIS para Java.

En este caso, el objeto GeoJsonParser se usa para parsear  los datos en GeoJSON en un fichero y devolverlos como una colleción de entidades para ArcGIS Runtime. Aunque en el ejemplo se hace a través de un fichero, la fuente puede ser de cualquier tipo que el programa en Java pueda leer. El siguiente ejemplo muestra como usar el parser:

Después de que los datos sean parseados se pueden añadir a una GraphicLayer:

Sencillo, ¿no?.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Visit Us On TwitterVisit Us On FacebookVisit Us On Google PlusVisit Us On PinterestVisit Us On YoutubeVisit Us On LinkedinCheck Our Feed