QGIS를 사용하여 맵 범위를 벗어난 생성 된 라인을 표시합니까?


12

QGIS 지오메트리 생성기를 사용하여 다음 표현식을 사용하여 OD 플로우 맵을 그렸습니다.

make_line( centroid( $geometry ),
centroid( geometry( get_feature( 'Layer2', 'Attribute1', attribute(
           $currentfeature, 'Attribute2') ) ) ) )

속성에 따라 선의 너비를 정의하여 모든 것이 잘되었습니다.

그러나 "허브"로 확대 / 축소하면지도 캔버스 외부의 장소에 연결된 선이 표시되지 않습니다. 지형지 물이지도에 나타나지 않아야하기 때문입니다.

고급 메뉴에서 "지오메트리 생성기"와 "선"수준 모두에서 "캔버스 범위에 클립 기능"옵션을 선택 해제하려고했지만 여전히 나타나지 않습니다.

허브를 확대 한 경우

확대되지 않은 경우

허브를 확대해도 모든 선이 나타나도록하고 싶습니다.


이것은 도움이되지 않습니다 ...하지만 Underdark의 흐름 매핑 접근법과 동일한 문제가 발생합니다. 밀도가 높은 지오메트리가 렌더링되는 방식에 관한 것이어야합니다 ... 제안은 로컬 레벨 맵의 속성 너비로 재생하는 것입니다 ... 폭을 작게 만드시겠습니까?
Andrew Tice

단계를 복제하고 답을 얻으려면 데이터 (shp ...)를 업로드 할 수 있습니다.
César Arquero

1
Shapefile은 다음과 같습니다. IGNINSEE
mamouthautapis

선이 세그먼트로 표시되는 경우 선을 세그먼트 화하는 것이 해킹이 될 수 있습니다. 잔디 도구 'v.split.length'가 작동 할 수 있습니다.
Julian

1
이것이 내가 가진 것과 같은 문제입니까 (이 문제를 이해하는 간단한 방법을 제공하는 경우-그렇지 않은 경우 무시하십시오) 실제 포인트와 비교하여 북쪽. 원래 포인트가 맵 캔버스 내에 있도록 축소 된 경우에만 작동합니다. 생성 된 포인트 세트를 확대 / 축소 (실제 포인트 위치를 캔버스 외부로 이동)하면 생성 된 포인트가 사라집니다. (QGIS 2.14)
로스트 라니 민

답변:


2

여기서 문제는 "여기에 줄이 있습니다"라는 실제 데이터가 없다는 것입니다. 표현식은 레이어 스타일링의 일부이며 적용 가능한 두 점이 렌더링 될 때만 렌더링 프로세스에서 발생합니다.

벡터 분석 도구의 처리 도구 상자에있는 가장 가까운 허브까지거리 도구 사용해보십시오 . 스포크에 대해 특정 다각형을 선택하고 다른 속성에 따라 선의 스타일을 지정합니다. 가능하지만 준비하려면 몇 가지 작업을 수행해야합니다. 고맙게도이 도구는 다각형 입력을 선택할 때 자동으로 중심을 사용합니다.

  1. 벡터 선택 도구 > 속성 별 추출
    • 입력 레이어 : 'LAYER_1'
    • 선택 속성 : 'ATTRIBUTE_1'
    • 연산자 : =
    • 값 : '허브 폴리곤을 참조하는 값'
    • 추출 (속성) : 'HUB'

  2. 벡터 선택 도구 > 속성 별 추출
    • 입력 레이어 : 'LAYER_1'
    • 선택 속성 : 'ATTRIBUTE_2'
    • 운영자 : 필요에 따라 선택
    • 값 : '스포크 다각형을 나타내는 값'
    • 추출 (속성) : 'SPOKES'

  3. 벡터 분석 도구 > 가장 가까운 허브까지의 거리
    • 소스 포인트 레이어 : 'SPOKES'
    • 대상 허브 계층 : 'HUB'
    • 허브 계층 이름 속성 : 입력 계층에 여러 허브가 지정된 경우 선택한 속성을 기반으로 출력에 "허브 이름"필드를 작성 합니다.
    • 출력 형태 유형 : 라인 투 허브
    • 측정 단위 : 미터
    • 허브 거리 : 'OUTPUT_LAYER_NAME'

결과 출력에는 'SPOKES'레이어 입력의 모든 속성이 유지되므로 라인 스타일에 필요한 속성이 여전히 존재합니다. 자체 벡터 레이어 인 선은 끝점의 가시성에 관계없이 모든 확대 / 축소 수준에서 계속 표시됩니다.

Graphical Modeler에 익숙한 경우 불필요한 단계로 작업 공간을 어지럽히 지 않도록 이러한 단계를 단일 프로세스로 구성 할 수도 있습니다.


3

다음 해결 방법을 찾았습니다 . 형상 생성기 대신 추가 가상 레이어를 사용 하여 선을 표시합니다.

가상 계층의 정의 :

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

(을 사용하여 원본 지오메트리를 참조 할 수 있음 m.geometry)

my_layer를 편집 할 때 가상 레이어를 새로 고치려면 레이어 속성 | 종속성을 확인하고 my_layer가 선택되어 있는지 확인하십시오 (기본적으로 회색으로 표시됨).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.