I'm calculating the length of common borders of 10 sets of polygons with the solution posted in this question: https://gis.stackexchange.com/a/360776
In 8 of the 10 datasets everything works fine, but in two of them I have the problem that the output is a point layer, instead of a line layer. In one of the two cases, I was able to fix this by running "Repair Geometries". In the other case, repairing doesn't help.
Any ideas what could be the issue and how I could find a woraround?
Here's the code I'm using:
SELECT
a.UUID_GIS AS poly1_id,
b.UUID_GIS AS poly2_id,
st_intersection(a.geometry, b.geometry) AS geometry,
st_length(st_intersection(a.geometry, b.geometry)) AS border_length
FROM "input1" a
JOIN "input1" b
ON st_intersects(a.geometry, b.geometry)
AND a.UUID_GIS < b.UUID_GIS
If needed, you can download the data here.
SELECT a.ID_FINAL as poly1_id, b. ID_FINAL as poly2_id, st_intersection(a.geometry, b.geometry) as geometry, st_length(st_intersection(a.geometry, b.geometry)) as border_length FROM "TestAusschnitt" a JOIN "TestAusschnitt" b ON st_intersects(a.geometry, b.geometry) AND a. ID_FINAL < b. ID_FINAL WHERE St_geometryType(st_intersection(a.geometry,b.geometry)) IN ('ST_LineString','ST_MultiLineString')