52 votos

¿Consulta SQL para tener una función geojson completa de PostGIS?

Me gustaría obtener una función geojson con propiedades de PostGIS. Encontré un ejemplo para tener una colección de características, pero no puedo hacer que funcione solo para una característica.

 SELECT row_to_json(fc)
 FROM ( SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features
 FROM (SELECT 'Feature' As type
    , ST_AsGeoJSON(lg.geog)::json As geometry
    , row_to_json(lp) As properties
   FROM locations As lg 
         INNER JOIN (SELECT loc_id, loc_name FROM locations) As lp 
       ON lg.loc_id = lp.loc_id  ) As f )  As fc;

Hasta ahora intenté modificar la consulta de colección de características del ejemplo. pero la salida no es válida.

9voto

camel_space Puntos 113

Solo una pequeña corrección a la respuesta de dbaston (comentaría pero no tengo puntos) Necesita convertir la salida de ST_AsGeoJSON como json (la cosa ::json ):

 SELECT json_build_object(
  'type',       'Feature',
  'id',         gid,
  'geometry',   ST_AsGeoJSON(geom)::json,
  'properties', json_build_object(
    'feat_type', feat_type,
    'feat_area', ST_Area(geom)::geography
  )
)
FROM input_table;

De lo contrario, el miembro de geometría será una cadena. Eso no es válido GeoJSON

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