Dibujé un mapa de flujo OD usando el generador de geometría QGIS, usando la siguiente expresión:
make_line( centroid( $geometry ),
centroid( geometry( get_feature( 'Layer2', 'Attribute1', attribute(
$currentfeature, 'Attribute2') ) ) ) )
Lo tengo todo bien, definiendo el ancho de mis líneas de acuerdo con los atributos.
Pero cuando hago zoom al "centro", las líneas vinculadas a lugares fuera del lienzo del mapa no aparecen. Supongo que es porque no se supone que las características aparezcan en el mapa.
Intenté desmarcar la opción "Recortar características a la extensión del lienzo" en el menú avanzado, tanto en el "Generador de geometría" como en los niveles de "Línea", pero aún no aparece.
Me gustaría que aparezcan todas mis líneas, incluso cuando se hace zoom en el centro.
qgis
symbology
mapcanvas
geometry-generator
mamouthautapis
fuente
fuente
Respuestas:
El problema aquí es que no hay datos reales que digan "hay una línea aquí". Su expresión es parte del estilo de capa y solo se encuentra en el proceso de representación cuando también se representan dos puntos aplicables.
Intente usar la herramienta Distancia al centro más cercano , que se encuentra en la caja de herramientas de procesamiento en Herramientas de análisis vectorial. Noto que está seleccionando polígonos particulares para sus radios, y diseñando las líneas de acuerdo con otros atributos. Esto es posible, pero deberá hacer algunas cosas para prepararse. Afortunadamente, la herramienta usa automáticamente los centroides cuando se eligen entradas de polígonos.
El resultado resultante conserva todos los atributos de la entrada de capa 'SPOKES', por lo que los atributos necesarios para el estilo de línea seguirán presentes. Como su propia capa vectorial, las líneas permanecerán visibles en todos los niveles de zoom, independientemente de la visibilidad de cualquiera de los puntos finales.
Si se siente cómodo con el Modelador gráfico, incluso podría construir estos pasos en un solo proceso para no saturar su espacio de trabajo con capas innecesarias.
fuente
Encontré la siguiente solución: use una capa virtual adicional en lugar de un generador de geometría para mostrar las líneas.
Definición de la capa virtual:
(Se puede hacer referencia a la geometría original usando
m.geometry
)Para asegurar que la capa virtual se actualiza cuando se edita my_layer, vaya a propiedades de capa | dependencias y asegúrese de que my_layer esté marcado (que está atenuado de forma predeterminada).
fuente