화살표로 끝나는 경로 : 기호를 개선해야합니다.
Bezier 곡선의 마지막 경로 세그먼트에서 Arrow head 에 대한 @BERA의 답변을 기반으로 지오메트리 생성기를 사용하여 경로 끝에 화살표를 만들었습니다.
make_line(point_n( $geometry, -2), end_point($geometry))

내 기호를 개선해야합니다.
- 선의 굵기를 조정하면 화살표를 넘어갑니다.
- 다른 화살표처럼 시작하는가는 선을 어떻게 얻을 수 있습니까?

답변
레이어를 복제 할 필요없이 첫 번째 답변의 개선 된 버전입니다. 선 레이어에서 선 스타일을 지오메트리 생성기> 다각형으로 정의하고 다음 표현식을 추가 tapered_buffer($geometry,0,2)
하고 0과 2를 선의 시작과 끝의 너비로 바꿉니다. smooth()
더 부드러운 가장자리를 얻기 위해 추가 할 수 있습니다 . 다음과 같은 결과를 얻을 수 있습니다 (원래의 선 형상이 어떻게 보이는지 보여주기 위해 흰색 선을 추가했습니다).

단순히 두 번째 심볼 레이어 (녹색 +)를 추가하고 지오메트리 생성기를 심볼 레이어 스타일로 다시 정의하는 것보다-이번에는 선을 지오메트리 유형으로 설정합니다. 이 표현식을 사용하고 (다시) 필요에 따라 값 0과 2를 변경합니다 (첫 번째 값은 시작 부분에서 줄을 확장하고 두 번째 값은 끝 부분에서 확장합니다).
extend(
geometry_n(
segments_to_lines(
$geometry),
num_geometries(
segments_to_lines($geometry)
)
),
0,
2
)
기호 레이어 유형을 화살표로 변경하고 그에 따라 화살표 스타일을 지정하십시오. 결과는 다음과 같습니다.

그것은 일종의 해결 방법입니다 : 복사에서 선 분해 (각 세그먼트에서 별도의 선 만들기)를 선택하고 데이터 기반 재정의> 도우미로 선 크기를 설정하는 것보다 선 레이어 사본을 저장하십시오 (복제 레이어 아님). 소스를 $ id,로드 최대 / 분으로 정의합니다. 값을 입력하고 선의 두께를 0에서 원하는 값으로 설정합니다. 따라서 QGIS에 각 선분의 두께를 id로 설정하도록 지시하면 점점 더 두꺼워집니다.
다른 레이어의 화살표와 결합하는 것보다. 분해 된 선 레이어를 사용하는 경우 위의 화살표 생성 솔루션이 작동하지 않습니다.
심볼 레이어 유형에서 연결 및 끝 스타일을 둥글게하기위한 단순한 선을 조정합니다. 화살표와 겹치지 않도록 필요한 경우 분해 된 선의 마지막 세그먼트를 삭제합니다.

분해 된 선의 마지막 선 (세그먼트)에 화살표가 있고 화살표가 밑에있는 선을 덮도록이 마지막 선을 약간 확장하려면 새 심볼 레이어를 만들고 지오메트리 생성기를 선택하고 사용할 수 있습니다. 생성 된 선을 기호 유형 화살표로 설정하고 그에 따라 스타일을 지정하는 것보다 다음 표현식 (필요에 따라 200000 값 조정)이 필요합니다.
extend(
geometry(
get_feature_by_id(
@layer ,
array_length( ( array_agg(collect( $geometry))))
)
),0,
200000
)
스크린 샷보기 :
1 : 위의 표현이있는 화살표의 심볼 레이어
2 : $ id (도우미)에 따른 선 두께가있는 선의 심볼 레이어

@Babel의 답변 에서 영감을 얻은 다음은 더 부드러운 너비 전환과 동일한 스타일의 화살표를 허용하는 변형입니다.

- 선을 약 100 개의 세그먼트로 세분화 할 가상 레이어를 만듭니다.
메뉴로 이동하여 layer / add layer / add-edit virtual layer
다음 쿼리를 입력하십시오.
SELECT ST_Segmentize(geometry,ST_length(geometry)/100.0)
FROM myLayer
- 너비를 늘리기 위해 가상 레이어 스타일 지정
single symbol
, geometry generator
라인 을 차례로 선택 하고 다음을 입력하여 모든 세그먼트를 자체 라인으로 분할합니다.
segments_to_lines( smooth( $geometry) )
smooth()
선이 이미 충분히 굴곡 진 경우 자유롭게 제거하십시오 .
생성 된 선 스타일을 선택하고 설정 data override
옆에있는 아이콘을 클릭합니다 width
. edit
다음 표현식을 선택 하고 입력하십시오.
마지막 세그먼트를 제외한 모든 너비를 설정합니다. 너비는 첫 번째로 생성 된 세그먼트의 경우 2 * 1/100에서 마지막 세그먼트의 경우 2 * 100/100입니다.
if(@geometry_part_num < @geometry_part_count, 2.0* @geometry_part_num / @geometry_part_count,0)

simple line
스타일로 이동하여round cap style

- 화살표 설정
"상단"라인을 클릭하고 +
옆에 있는 녹색을 클릭 한 다음 새 스타일을 추가하고 지오메트리 생성기를 다시 선택하십시오. 제공 한 표현식을 입력하세요.

화살표를 선택하고 width start
를 1.98로 설정합니다 (이전 단계에서 마지막으로 표시된 세그먼트가 2 * 99/100 = 1.98 이었으므로). width
(끝)을 2로 설정합니다. 머리 길이 또는 두께로 재생하여 모양을 만들 수 있습니다. 좋은.
