En un proyecto, estoy tratando de adoptar estilos maravillosos para los mapas de flujo creados por @underdark.
En este momento tengo la siguiente salida
El Shapefile fue creado con el uso de Mapas de flujo (Oursins) Plugin.
Las líneas tienen diferentes direcciones, es decir, el punto de partida de la primera es el punto de llegada de la segunda y viceversa. Así que, básicamente, la tabla incluye líneas con ambas direcciones pero sin ninguna descripción de las mismas.
Sin embargo, me encontré con varios problemas
1. Variación del tamaño de los búferes
Los búferes alrededor de los puntos heredarán los parámetros de una capa diferente, es decir, no tendrán el mismo tamaño.
¿Cómo hacer que respondan al tamaño de los radios de los círculos? ¿Existe algún tipo de factor de escala, para que mis topes "dinámico" ?
difference(
difference(
$geometry,
buffer(start_point($geometry), 500)
),
buffer(end_point($geometry), 500)
)
Tal vez yo para aplicar layer_property()
o dbvaluebyid()
o represent_value()
si quiero extraer el valor dinámico de una capa diferente?
Sé que los valores del buffer en la expresión anterior sólo producen resultados apropiados para conjuntos de datos de líneas que utilizan un CRS en metros y tendrán que ser ajustados para otras unidades.
2. Asignación adecuada de flechas
Estoy utilizando una expresión para Arrow type > Plain
CASE
WHEN x(start_point($geometry)) - x(end_point($geometry)) < 0 THEN 1
ELSE 2
END
pero aún así, no puedo asignar correctamente las mitades naranjas de las flechas en el lado opuesto de los azules.
3. La anchura de las flechas
Quiero ajustar el ancho de línea según los valores de un campo "FLUX"
. Por esta razón, estoy utilizando una expresión para Arrow width
.
scale_linear("FLUX",0,10,0.1,3) * CASE WHEN "FLUX" > 1000 THEN 1 ELSE 0 END
¿Cómo debo manejar esos temas?
Mi salida deseada debería ser así, las líneas curvas pueden ser ignoradas.
Referencias:
0 votos
Pensando en voz alta: ¿Podrías reducir a la mitad el ancho de tus flechas y colocarlas en uno u otro lado de tu línea? Como
CASE WHEN x(start_point($geometry)) - x(end_point($geometry)) < 0 THEN -0.5 ELSE 0.5 END
introducido como valor "offset" (o utilizar1
en lugar de0.5
). ¿O es que no es deseable para el estilo que pretende?0 votos
Desgraciadamente, no tanto, tengo que tener un mapa de buen aspecto para seguir investigando. Su idea tiene sentido, pero no es lo que sueño.
0 votos
¿Qué pasa con la dirección y la anchura de las flechas? Ayudaría que añadieras una imagen de cómo quieres que sean las flechas.