Si todos los polígonos son rectángulos, supongo que estás buscando el promedio de los lados largos.
En este caso, si es una tarea única, esto debería funcionar:
-
comienza en el punto 0 del borde y verifica si la distancia de 0 a 1 es menor que la distancia de 0 a 3.
-
caso verdadero: obtén las coordenadas del punto medio de los lados 0-1 y 2-3.
-
caso falso: obtén las coordenadas del punto medio de los lados 2-3 y 0-3.
-
Construye una nueva geometría de línea utilizando los puntos medios encontrados.
En QGIS:
Utiliza la calculadora de campos para obtener las coordenadas:
crea 4 columnas:
X1:
if(($x_at(0)-$x_at(1))^2+($y_at(0)-$y_at(1))^2 < ($x_at(0)-$x_at(3))^2+($y_at(0)-$y_at(3))^2,$x_at(0)/2+$x_at(1)/2,$x_at(0)/2+$x_at(3)/2)
Y1:
if(($x_at(0)-$x_at(1))^2+($y_at(0)-$y_at(1))^2 < ($x_at(0)-$x_at(3))^2+($y_at(0)-$y_at(3))^2,$y_at(0)/2+$y_at(1)/2,$y_at(0)/2+$y_at(3)/2)
X2:
if(($x_at(0)-$x_at(1))^2+($y_at(0)-$y_at(1))^2 < ($x_at(0)-$x_at(3))^2+($y_at(0)-$y_at(3))^2,$x_at(2)/2+$x_at(3)/2,$x_at(1)/2+$x_at(2)/2)
Y2:
if(($x_at(0)-$x_at(1))^2+($y_at(0)-$y_at(1))^2 < ($x_at(0)-$x_at(3))^2+($y_at(0)-$y_at(3))^2,$y_at(2)/2+$y_at(3)/2,$y_at(1)/2+$y_at(2)/2)
Luego construye la columna de geometría
wkt_geometry:
concat('LINESTRING( ',"X1",' ',"Y1",',',"X2",' ',"Y2",')')
Luego, exporta la capa como csv y vuelve a cargarla con el controlador csv, establece wkt_geometry como el campo de geometría.
1 votos
Por favor, proporcione más información sobre sus geometrías ... ¿son siempre rectángulos?
0 votos
Sí @snaileater siempre rectángulos.