Я пытаюсь получить индексную позицию POINT
в MULTILINESTRING
.
Вот весь запрос, с которым я застрял:
SELECT req.id, (dp).geom, netgeo_point_tech.id, ST_Line_Locate_Point(st_lineMerge(geom_cable), (dp).geom)
FROM (SELECT id, ST_DumpPoints(geom) as dp, geom as geom_cable FROM netgeo_cable_test ) as req
JOIN netgeo_point_tech ON ST_dwithin(netgeo_point_tech.geom, (dp).geom, 1)
ORDER BY req.id, (dp).path [ 1] ASC
Я получаю ошибку: line_locate_point : 1st arg isnt a line
.
Ошибка связана с возвратом функции st_lineMerge()
, которая возвращает LINESTRING
, но также MULTILINESTRING
.
Я не понимаю этого. st_lineMerge()
должен возвращать только LINESTRING
. ST_LineMerge ()
Когда я просто пытаюсь выполнить простой запрос, подобный этому:
select st_astext(st_linemerge(geom)) from netgeo_cable_test
Вывод:
)
Я хочу извлечь уроки из этого, поэтому, если возможно, объясните мне, что я здесь делаю неправильно, или, если мой подход не хватает понимания.