Почему ST_Intersection из Postgis возвращает многострочность для самопересекающихся строк? - PullRequest
1 голос
/ 29 мая 2020

Я пробую PostgreSQL с расширением Postgis, чтобы получить геометрию gps_trace, которая пересекает прямоугольник, затем я хочу получить по одной строке для каждой отдельной части следа в поле. В следующий пример с 1 трассой и 1 прямоугольником , это будет означать, что ST_intersection возвращает мне мультистроку с 2 строками внутри, так что я могу извлечь каждую из них с помощью ST_Dump ()

Геометрии находятся в epsg 4326, я использую запрос SELECT ST_Intersection(gps_traces.geom, grid.box) FROM gps_traces, grid

Но в результате я получаю мультистроку с 34 геометриями внутри. После небольшого увеличения я обнаружил, что, когда линия самопересекается, кажется, что каждая часть рассматривается и регистрируется как отдельная линия, хотя в начале трасса была строкой в ​​одной go.

Я очень удивлен такому поведению и не нашел ни документации по этому вопросу, ни тем, в которых говорилось бы об этом, поэтому я спрашиваю здесь, как построить геометрию, полученную в результате пересечения, и почему я получаю это поведение?

Я впервые использую stackoverflow, поэтому прошу прощения, если некоторые элементы отсутствуют

...