Есть две таблицы. Первая planet_osm_ways:
id :: bigint, nodes :: bigint[], tags :: text[] - в ней содержится объект и в поле nodes (массив bigint) список точек объекта в нужном порядке.
Вторая таблица planet_osm_nodes - в ней содержатся точки с координатами.
id :: bigint, lat::bigint, lon::bigint
Запрос:
select
pon.id,
ST_FlipCoordinates(ST_Transform(ST_GeomFromText('POINT(' || lon / 100 || ' ' || lat / 100 || ')', 3785), 4326)) as coords
from
planet_osm_ways AS pow
left join planet_osm_nodes AS pon on pon.id = any (pow.nodes)
where
pow.id = 128676234
order by
pow.nodes -- ??
Как бы не крутил запрос и сортировку, он сортирует по pon.id. Можно ли заставить его выводить список точек в том порядке, как указано в массиве planet_osm_ways.nodes ?? Ибо если делать в отсортированном по возрастанию, то полигоны собираются не так как надо (((