[postgis-users] st_geojson like st_mvt function
Jorge Gustavo Rocha
jgr at di.uminho.pt
Tue Dec 12 13:31:54 PST 2017
Hi Rémi,
If I understand you requirement, to get a proper GeoJSON
FeatureCollection you need a more complicate query.
I use these kind of queries, using a INNER JOIN, to send data to OpenLayers.
Maybe we could create something like st_asfeaturecollection to return
both the geometries and the properties.
Queries to return a FeatureCollection looks like:
var sql = `SELECT row_to_json(fc) as geojson
FROM ( SELECT 'FeatureCollection' As type, array_to_json(array_agg(f))
As features
FROM (
-- query
SELECT 'Feature' As type, ST_AsGeoJSON(lgeom.geom)::json As geometry,
row_to_json(lprop) As properties
FROM sentinel.products As lgeom
INNER JOIN (
SELECT id, uuid, identifier, instrument, product_type, cloud_cov_per,
cloud_shad_per, dark_feat_per, format, gen_qual, high_prob_cloud,
format_correction, sensor_start, sensor_stop, ice_per, cirrus_per,
unc_per, veg_per, water_per, to_download, downloaded, published
FROM sentinel.products
where sensor_start::timestamp::date >= '${sensor_start}' and
sensor_start::timestamp::date <= '${sensor_end}'
) As lprop
ON lgeom.id = lprop.id
-- end of query
) As f ) As fc`;
The output is a well formed FeatureCollection.
I've tried to isolate the proper query between the comments:
-- query
-- end of query
Regards,
J. Gustavo
On 12-12-2017 20:56, Rémi Desgrange wrote:
> Hi,
>
> this is my first mail on this list, I didn't know if I should have
> posted on dev list or this one. Don't hesitate to correct.
>
> With postgis 2.4 we now have the possibility to generate mvt format
> directly in SQL, what I really like is the ability to construct a mvt
> response with geometrie + data. The sql result is directly well formated
> and ready to use. When I need to use geojson in my app I need something
> like that :
>
> { "type": "Feature",
> "geometry":
> {
> "type": "Point",
> "coordinates": [125.6, 10.1]
> },
> "properties": { "name": "Dinagat Islands" }
> }
>
> In order to do that I do :
> SELECT name, st_geojson(geom) as geom FROM mytable
>
> And then I my code I manipulate "name" to put it in the json under
> "properties" there hack around to directly return geojson, but they're
> hack not actual solutions.
>
> What I imagine is something like that :
>
> SELECT st_geojson(x) FROM (SELECT name, geom FROM mytable) x
>
> the signature would be :
>
> text St_AsGeoJSON(anyelement set row)
>
> I do not know if this question has already been asked, I found nothing
> when I googled. Do you think that this is a legitimate feature request ?
>
> Thanks.
>
>
>
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-users
>
J. Gustavo
--
Jorge Gustavo Rocha
Departamento de Informática
Universidade do Minho
4710-057 Braga
Tel: +351 253604480
Fax: +351 253604471
Móvel: +351 910333888
skype: nabocudnosor
More information about the postgis-users
mailing list