Какие-либо решения для интерполяции MULTILINESTRING? - PullRequest
0 голосов
/ 08 марта 2012

Вот какая-то часть моего стола

the_new_geom    
MULTILINESTRING((100.594606800391 13.872016439113...    
LINESTRING(100.622342929363 13.9502950094115,100....    
LINESTRING(100.618133904403 14.1676090338694,100....    
LINESTRING(100.823426479749 14.2959151254166,100....    
MULTILINESTRING((100.823426479749 14.295915125416...    

Содержит ОБОИХ ЛИНИСТРИНГОВ, а также НЕСКОЛЬКО ЛИСТИНГОВ

Я хотел бы сделать ST_line_interpolate_point для этого набора данных

НО

ST_line_interpolate_point требуется только LINESTRING для 1-го аргумента.

Так есть ли какие-либо решения для преобразования из MULTILINESTRING в одну LINESTRING?

OR

Как проверить, что MULTILINESTRING можно конвертировать ?

1 Ответ

1 голос
/ 08 марта 2012

Да, есть способ проверить, можно ли преобразовать мультилинию в строку, сначала вы пытаетесь преобразовать ее, а затем проверяете количество геометрий.Если число геометрий равно 1, это означает успешное преобразование из многострочного в строчный:

SELECT * FROM mytable WHERE ST_NumGeometries(ST_LineMerge(the_geom)) = 1 
...