[postgis-users] Selecting as GeoJSON with Transformation

Nicolas Ribot nicolas.ribot at gmail.com
Mon Feb 11 08:29:19 PST 2019


Hmm sorry.
I pasted your table name without checking.
topology.trails_01 is aliased as "t" in the query:

with tmp1 as (
  select 'Feature' as "type",
         ST_AsGeoJSON(ST_Transform(ST_SetSRID(t.geom, 26918), 4326),
6)::json as "geometry",
         (
           select json_strip_nulls(row_to_json(t))
           from (select id, inputs) t
         ) as "properties"
  from topology.trails_01 t
), tmp2 as (
         select 'FeatureCollection' as "type",
              array_to_json(array_agg(t)) as "features"
       from tmp1 t
) select row_to_json(t)
from tmp2 t;

Nicolas

On Mon, 11 Feb 2019 at 16:00, Sean Montague <couloir007 at gmail.com> wrote:

> Hi Nicolas,
>
> Thank you for the response. I have tried working with the example but I'm
> unable to get it to run. In the example you provided I keep getting.
>
> ERROR:  missing FROM-clause entry for table "trails_01"
> LINE 3:          ST_AsGeoJSON(ST_Transform(ST_SetSRID(trails_01.geom...
>
> which searches lead me to there is an ordering issue
>
> Thanks!
> Sean
>
> On Mon, Feb 11, 2019 at 4:00 AM Nicolas Ribot <nicolas.ribot at gmail.com>
> wrote:
>
>>
>> On Fri, 8 Feb 2019 at 23:48, Sean Montague <couloir007 at gmail.com> wrote:
>>
>>> It has been many years since I last worked with postGIS, I don't do GIS
>>> for a living anymore but I still like to have fun with it. I'm looking to
>>> export some old data I have as GeoJSON and projecting it to display in a
>>> Google Map Overlay. I can get the two individual queries below to work, but
>>> I cannot figure out how to combine them. I want to transform and output to
>>> GeoJSON with attributes stored in the DB.
>>>
>>> SELECT
>>>   ST_AsGeoJSON(ST_Transform(ST_SetSRID(trails_01.geom, 26918), 4326)),
>>>   trails_01.name,
>>>   trails_01.id
>>> FROM
>>>   topology.trails_01;
>>>
>>> SELECT jsonb_build_object(
>>>     'type',     'FeatureCollection',
>>>     'features', jsonb_agg(features.feature)
>>> )
>>> FROM (
>>>   SELECT jsonb_build_object(
>>>     'type',       'Feature',
>>>     'id',         gid,
>>>     'geometry',   ST_AsGeoJSON(geom)::jsonb,
>>>     'properties', to_jsonb(inputs) - 'gid' - 'geom'
>>>   ) AS feature
>>>   FROM (SELECT * FROM topology.trails_01) inputs) features;
>>>
>>> Any help would be appreciated as I start down this path of reteaching
>>> myself postGIS.
>>>
>>> Thank you,
>>> Sean
>>>
>>
>> Hi,
>>
>> Something like:
>>
>> with tmp1 as (
>>   select 'Feature' as "type",
>>          ST_AsGeoJSON(ST_Transform(ST_SetSRID(trails_01.geom, 26918),
>> 4326), 6)::json as "geometry",
>>          (
>>            select json_strip_nulls(row_to_json(t))
>>            from (select id, inputs) t
>>          ) as "properties"
>>   from topology.trails_01 t
>> ), tmp2 as (
>>          select 'FeatureCollection' as "type",
>>               array_to_json(array_agg(t)) as "features"
>>        from tmp1 t
>> ) select row_to_json(t)
>> from tmp2 t;
>>
>> Nicolas
>>
>> _______________________________________________
>> postgis-users mailing list
>> postgis-users at lists.osgeo.org
>> https://lists.osgeo.org/mailman/listinfo/postgis-users
>
> _______________________________________________
> postgis-users mailing list
> postgis-users at lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/postgis-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20190211/9b651e85/attachment.html>


More information about the postgis-users mailing list