ST_ApproximateMedialAxis оставляя скелетные линии в конечном приближении - PullRequest
0 голосов
/ 21 декабря 2018

Я хочу аппроксимировать замкнутый многоугольник, но PostGIS дает мне не чистую линейную строку, а многострочную с 3 линейными строками.Все из-за этого крошечного хвоста, оставшегося от прямого скелета.the polygon the tail Есть ли правильный или хороший способ справиться с этим?

1 Ответ

0 голосов
/ 24 декабря 2018

Вы можете постобработать вывод st_approximatemedialaxis(), чтобы отфильтровать эти хвосты по некоторым критериям (например, по количеству точек):

select st_astext(geom)
from (select (st_dump(x.geom)).geom
    from (values (st_geomfromtext('MULTILINESTRING( (27 80, 18 68, 29 48, 55 58, 53 76, 27 80), (55 58, 58 57))')),
    (st_geomfromtext('MULTILINESTRING( (46 34, 32 21, 44 7, 67 9, 67 29, 46 34), (46 34, 46 36))')),
    (st_geomfromtext('MULTILINESTRING( (69 66, 61 48, 75 40, 94 54, 88 68, 69 66), (61 48, 58 47))'))) as x(geom)) y
where st_npoints(geom)>2

возвращает

LINESTRING(27 80,18 68,29 48,55 58,53 76,27 80)
LINESTRING(46 34,32 21,44 7,67 9,67 29,46 34)
LINESTRING(69 66,61 48,75 40,94 54,88 68,69 66)
...