STLineMerge не превращает мою многопоточность в линейную связь - PullRequest
0 голосов
/ 02 октября 2018

Это моя часть multilinestring:

MULTILINESTRING((59.6338836103678 36.3408616511151,59.6336405351758 36.3410074124113),(59.648377513513 36.3329201331362,59.6481338515878 36.3326094998047,59.6478482801467 36.3322287937626))

Когда я выполняю эту команду в postgresql:

SELECT  ST_AsText(ST_LineMerge(ST_GeomFromText('MULTILINESTRING((59.6338836103678 36.3408616511151,59.6336405351758 36.3410074124113),(59.648377513513 36.3329201331362,59.6481338515878 36.3326094998047,59.6478482801467 36.3322287937626))')));

Я не получаю linestring ? Я получилвсе еще MULTILINESTRING?

Ответы [ 2 ]

0 голосов
/ 03 октября 2018

Я предполагаю, что вы хотите объединить мультилинейную строку с одной линейной строкой, если это возможно, если нет, то объедините с N линейными строками, где N - наименьшее возможное количество линейных строк.

Я добавляю еще одну мультилинейную строку, которая может быть помечена для одной линейной строкичтобы проверить, работает ли он по назначению.

with  edges as (select ST_GeomFromText('MULTILINESTRING((59.6338836103678 36.3408616511151,59.6336405351758 36.3410074124113),
                                                        (59.648377513513 36.3329201331362,59.6481338515878 36.3326094998047,59.6478482801467 36.3322287937626))') geom
                UNION
                select ST_GeomFromText('MULTILINESTRING((0 0,1 1),
                                                        (1 1,30 20,100 120)
                                                       )') geom)

select row_number() over () id,geom, st_astext(geom)
    FROM (select distinct (st_dump(st_linemerge(geom))).geom geom
            from (select st_union(geom) geom
                    from edges e) a
         ) b;
0 голосов
/ 02 октября 2018

Возвращает исходную многоканальную строку, которую st_linemerge делает, когда не может слиться.Похоже, что ваша многослойная цепочка имеет отдельные части, поэтому ее нельзя объединить.Когда я помещаю его в QGIS, я получаю следующее:

enter image description here

Здесь есть еще немного информации по этому вопросу: https://gis.stackexchange.com/questions/83069/cannot-st-linemerge-a-multilinestring-because-its-not-properly-ordered

...