¿Mostrar líneas generadas fuera de la extensión del mapa usando QGIS?

12

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.

Cuando se acerca el eje

Cuando no está enfocado

Me gustaría que aparezcan todas mis líneas, incluso cuando se hace zoom en el centro.

mamouthautapis
fuente
Esto no será útil ... pero tengo el mismo problema con el enfoque de mapeo de flujo de Underdark. Debe ser algo sobre la forma en que se representa la geometría densa ... la única sugerencia es jugar con el ancho de atributo para el mapa de nivel local ... ¿reducir el ancho?
Andrew Tice
Es posible que pueda cargar sus datos (shp ...) para poder replicar sus pasos e intentar obtener una respuesta.
César Arquero
1
Shapefile viene de aquí: IGN y la mesa unida de INSEE
mamouthautapis
Quizás segmentar la línea podría ser un truco para que aparezca en el mapa, si las líneas solo se muestran en ambos extremos están cerca de la extensión del mapa. La herramienta de hierba 'v.split.length' tal vez hace el trabajo.
Julian
1
¿Es este el mismo problema que he tenido (si lo es, da una manera simple de entender este problema, si no, ignóreme): quería mostrar un conjunto de datos de puntos con todo el conjunto de puntos generados desplazados 300 km al este y 600 km norte en comparación con los puntos reales. Funciona, pero solo cuando se aleja para que los puntos originales estén dentro del lienzo del mapa. Tan pronto como amplíe el conjunto de puntos generados (moviendo las ubicaciones de puntos reales fuera del lienzo), los puntos generados desaparecerán. (QGIS 2.14)
Rostranimin

Respuestas:

2

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.

  1. Herramientas de selección de vectores > Extraer por atributo
    • Capa de entrada: 'LAYER_1'
    • Atributo de selección: 'ATTRIBUTE_1'
    • Operador: =
    • Valor: 'valor que se refiere al polígono del centro'
    • Extraído (atributo): 'HUB'

  2. Herramientas de selección de vectores > Extraer por atributo
    • Capa de entrada: 'LAYER_1'
    • Atributo de selección: 'ATTRIBUTE_2'
    • Operador: elegido según sea necesario
    • Valor: 'valor (es) que se refieren a polígonos radiales'
    • Extraído (atributo): 'HABLA'

  3. Herramientas de análisis vectorial > Distancia al centro más cercano
    • Capa de puntos de origen: 'RADIOS'
    • Capa de centros de destino: 'HUB'
    • Atributo de nombre de capa de concentrador: crea un campo "Nombre de concentrador" en la salida en función del atributo elegido, en caso de que se especifiquen varios concentradores en la capa de entrada
    • Tipo de forma de salida: línea a cubo
    • Unidad de medida: metros
    • Distancia del centro: 'OUTPUT_LAYER_NAME'

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.

JoshC
fuente
3

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:

select m.FID, make_line(.....) as geometry from my_layer m

(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).

Colina baja
fuente