5 votos

Convenios para devolver GeoJSON través de una API

Tengo un consultable API que devuelve uno o más GeoJSON FeatureCollections. En la actualidad la respuesta se ve algo como esto:

{
  "success": {
    "data": {
      "layer1": {"type": "FeatureCollection"....},
      "layer2": {"type": "FeatureCollection"....}
    }
}

Sin embargo, mientras que tratando de ver los resultados en QGIS me di cuenta de que esto podría no ser el mejor enfoque (como QGIS no permite especificar una clave de acceso cuando la adición de un GeoJSON capa a través de un URI). Creo que esto es generalmente un diseño sensato, excepto que yo no puede encontrar otros ejemplos de regresar GeoJSON como parte de una estructura JSON.

¿Hay algo de malo en que una GeoJSON característica (específicamente un FeatureCollection, pero en realidad cualquier tipo) formar parte de otro "documento"? Aunque GeoJSON es JSON, también puedo ver un fuerte argumento de que si un usuario solicita un recurso como GeoJSON, es racional esperar que un válido GeoJSON documento en volver.

Gracias!

7voto

Antonio Haley Puntos 2588

Usted tendrá que parche de software existente para el uso de dicho formato, pero no hay nada de malo con la inserción de GeoJSON en otros formatos JSON. JSON es super extensible como este. Cada objeto es su propio espacio de nombres.

Si nos fijamos en la otra dirección, hay algunas aplicaciones, es decir, Folleto, http://geojson.ioFiona los programas de línea de comandos, que aceptará "desnudo" características y geometrías. Las aplicaciones que son más capa orientada (QGIS, ogr2ogr) normalmente no, y requerirá una colección de características.

Si usted tiene que tener 2 capas en un solo documento JSON y no quiere escribir un nuevo plugin de QGIS o un nuevo controlador para OGR, sugiero giro de la capa/función de relación en el interior: tienen una característica de la colección y dejar que las características de llevar el nombre de una capa en sus propiedades de objeto.

{ "type": "FeatureCollection", "features": [
  { "type": "Feature", "id": "1", "properties": { "layer": "one" }},
  { "type": "Feature", "id": "2", "properties": { "layer": "two" }}
  ... 
  ] 
}

Este enfoque tiene buen valor por defecto de la usabilidad y la mayoría del software será capaz de romper las capas seleccionando en la propiedad de capa. Este multicapa perfil de GeoJSON podría ser mejorada mediante la adición de una lista de capas layers: ["one", "two"] a la característica de la colección (pero ahora estoy mano saludando).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X