Si sólo quiere utilizar un estilo diferente para la visualización, sin crear una nueva capa, puede hacerlo añadiendo una nueva capa de símbolos. Configúrela como Geometry generator
y seleccione polygon
como Geometry type
. Entonces pega la siguiente expresión. Entonces su polígono se divide visualmente (pero no realmente) en dos partes y puede utilizar toda la potencia del estilo de QGIS por separado para cada parte.
with_variable (
'midline',
extend (
make_line (
centroid( $geometry ),
project (
centroid ( $geometry ),
100000,
0
)
), 100000,0
),
intersection (
$geometry,
make_rectangle_3points (
end_point ( @midline ),
start_point ( @midline ),
make_point (
x_max ($geometry),
y_min ($geometry)
)
)
)
)
![enter image description here]()
Cómo funciona la expresión - ver la captura de pantalla en la parte inferior para cada paso:
- Crea el centroide del polígono:
centroid($geometry)
- Cree un nuevo punto desplazando (proyectando) el centroide una distancia (aquí: 100000) en dirección al norte (acimut=0):
project (centroid ( $geometry), 100000, 0 )
- Crea una línea que conecte los puntos de 1 a 2:
make_line (1,2)
(sustituir 1 y 2 por las expresiones de allí)
- Prolongar la línea del 3 hacia el sur:
extend (3, 100000,0)
- sustituye el 3 por la epxresión del 3
Ahora tiene una línea que pasa por el centroide en dirección norte/sur, dividiendo el polígono en 2 partes
-
Crear una variable llamada midline
desde esta línea utilizando with_variable ( 'midline', 4, expression)
- sustituye el 4 por la expresión de allí. expression
es lo que queremos hacer con esta variable (lo que sigue en los siguientes pasos).
-
Crea el punto inicial y final de la línea de 4: start_point ( @midline )
y end_point ( @midline )
- la variable @midline
es lo que definimos antes en el paso 5: la línea que corre N/S
-
Cree un punto en la esquina sureste (inferior derecha) de la extensión del polígono: make_point (x_max ($geometry), y_min ($geometry))
-
Crea un rectángulo a partir de los dos puntos del 6 + el punto del 7: ``Hacer_rectángulo_3puntos ( 6_inicio, 6_final, 7)` (sustituye de nuevo los argumentos por las entradas de los pasos 6 y 7)
-
Ahora encuentra el área donde el rectángulo de 8 interesa al polígono de entrada ( $geometry
): intersection ( $geometry, 8)
- sustituir 8 por la expresión del paso 8.
-
Ahora combinamos la expresión de 5 añadiendo la expresión de 9 como tercer argumento.
Una ilustración que visualiza los pasos 1 a 10. Leyenda: naranja: polígono original; 1. punto blanco; 2. punto marrón; 3. línea rosa; 4. línea azul; 5. [no se ve]; 6. puntos grises; 7. punto rojo; 8. líneas negras discontinuas; 9. & 10. superficie de puntos negros: ![enter image description here]()