QGIS에서 부드러운 (베 지어) 곡선으로 선을 렌더링하는 방법이 있습니까?


33

Illustrator로 맵을 만드는 것에서 QGIS 및 실제 데이터로 만드는 것으로 이동하고 있습니다. QGIS에서 다시 만들 수 없었던 것 중 하나는 Illustrator에서 얻을 수있는 부드러운 곡선입니다. 조인 및 캡 스타일에 대해 이야기하는 것이 아니라 전체 라인이 렌더링되는 방식에 대해 이야기합니다.

SVG로 Illustrator로 내보내고 거기에서 맵을 마무리하는 것을 포함하지 않는 답변을 찾고 있습니다.

또한, 나는 그들이 부정확 한 표현으로 간주 될 수 있다는 것을 알고 있지만, 대부분의 경우,이지도는 라이더에게 정확한 표현이 필요한 장소와 필요한 장소에 대한 아이디어를 제공하기위한 것입니다.

다음은 내가 의미하는 바의 예입니다. 여기에 이미지 설명을 입력하십시오


2
데이터는 어떻게 저장됩니까? 대부분의 데이터 형식 (예 : shapefile)은 호를 허용하지 않습니다. 나는 이제 일부 데이터베이스를 믿습니다.
대런 코프

답변:


24

Generalizer 플러그인을 확인하십시오. 원하는대로해야합니다. 플러그인에는 부드럽게 작동하는 스무딩 옵션이 있습니다.

선이 렌더링되는 방식을 변경하지 않고 부드럽게 (또는 단순화 / 일반화)가 적용된 새 모양 파일을 만듭니다.

여기에 이미지 설명을 입력하십시오

여기에 이미지 설명을 입력하십시오


타사 저장소를 사용하도록 설정 했는데도 QGIS 1.7.3 용 플러그인을 찾을 수 없습니다. 활성화 / 찾기 방법을 보여줄 수 있습니까? 흥미롭고 간단 해 보입니다.
SaultDon

3
이상한. 기본 QGIS 플러그인 저장소에서 제공되므로 플러그인 설치 프로그램에 있어야합니다.
Nathan W

3
맞습니다. 그러나 Python Plugin Installer에서 옵션 탭으로 이동하여 "허용 된 플러그인"을 "실험용으로 표시된 플러그인까지 모두 표시"로 변경해야했습니다.
SaultDon

나는 오늘 밤이 플러그인을 가지고 놀았고 GRASS 레이어를 사용할 필요가 없으며 현재 shapefile을 변환 할 수 있기 때문에 실제로 더 잘 작동했습니다.
Brian Kelly

나는 매우 상세하지만 들쭉날쭉 한 디지타이징을 위해 두 단계로 수행해야했습니다. 먼저 단순화 (예 : Lang 알고리즘)와 부드럽게. 치료를했다.
다른 벤

16

QGIS + GRASS 플러그인 사용 :

"플러그인 관리"창에서 Grass 툴바를 추가하십시오. qgis에 잔디 도구 플러그인 추가

선은 잔디 벡터가되어야하므로 새로운 또는 기존 GRASS 맵셋으로 변환하십시오.

GRASS 툴바에서 GRASS Tools ...를 선택하십시오. 여기에 이미지 설명을 입력하십시오

모듈을 찾으십시오 : v.generalize ( WIKI tutorial here )

그런 다음 몇 가지 다른 일반화 알고리즘을 선택할 수 있습니다. GRASS 툴 v. 일반 알고리즘 선택

Chaiken, Hermite 또는 Sliding Average 알고리즘도 주목하십시오. 다른 것들도 있습니다!

차이점은 위키 그림에서 볼 수 있습니다. v.generalize 단순화 차이 예제

위키에서 : "Chaiken"과 "Hermite"의 차이점은 "Chaiken"에 의해 생성 된 라인은 원래의 라인을 "내접"하는 반면 "Hermite"라인은 그림 [위]. (검은 선은 원래 선, 녹색 선은 "Chaiken", 파란색은 "Hermite")


uDig + jgrasstools 또는 잔디 사용 :

GRASS의 v.generalize에서 원하는 결과를 얻는 데 어려움이 있으면 jgrasstools로 최신 버전의 uDig를 사용해 보십시오 . jgrasstools와 같은 곳에서 잔디 병을 잡을 수도 있습니다.

uDig가 설치되어 실행되면 Spatial Toolbox : 창>보기 표시> 기타 ...를 활성화하십시오 . uDig에서 공간 도구 상자 사용

가독성을 높이기 위해 툴바를 도킹 해제합니다 (Spatial Toolbox 탭> 분리 ...를 마우스 오른쪽 버튼으로 클릭). uDig에서 공간 도구 상자 분리

필요한 jgrasstools 및 grass (선택적) 모듈을로드하십시오. jgrasstools / 잔디를 udig에로드

grass jar 파일도로드 할 경우 grass 매개 변수 (Windows의 grass 실행 파일 또는 bat 파일 또는 Linux의 grass 명령 (예 : / usr / bin / grass)를 가리킴)를 설정하는 것을 잊지 마십시오. uDig에서 잔디 매개 변수 설정

마침내! 잔디가 아닌 jgrasstools의 도구를 사용하여 벡터 처리> LineSmootherJaiTools를 사용하여 선을 쉽게 일반화 할 수 있습니다. uDig에서 LineSmootherJaiTools로 벡터 처리

입력과 출력을 올바르게 설정하십시오 (Shapefile에서만 작동하므로 잔디의 맵 세트 / 위치로 데이터를 변환 할 필요가 없습니다) . uDig에서 Spatial Toolbox의 입력 및 출력 설정

스무딩 공차 (0.0-1.0) 및 입력 / 출력 설정을 완료 한 후 Spatial Toolbox 창 (오른쪽 상단)에서 재생 버튼을 누릅니다. uDig 용 Spatial Toolbox에서 모듈 재생

결과 :
uDig는 jgrasstools 결과를 단순화합니다 ...


QGIS가 렌더링하기 전에 원본 데이터를 변경하거나 필터링합니까?
Brian Kelly

"(선) 평활화는 선을 입력으로 받아 원래의 근사값을 더 매끄럽게하는"반전 "프로세스입니다. 경우에 따라 새 정점을 원래 선에 삽입하여이 작업을 수행 할 수 있습니다. "원본의 정점 수의 최대 4000 %까지 가능합니다. 이러한 경우 스무딩 후 선을 단순화하는 것이 좋습니다." 에서 grass.osgeo.org/grass64/manuals/html64_user/v.generalize.html
브라이언 켈리

따라서 선이 모두 정확하고 추가 편집이 필요하지 않은 경우 (추가 벡터를 조정 한 후 다시 매끄럽게하지 않는 한) 적용 할 것 같습니다.
Brian Kelly

@spline Yea, 기본적으로 shapefile이 아닌 "grass dataset"으로 작업해야하기 때문에 원본 shapefile이 완전한지 확인하고 싶을 것입니다. 추가 정점을 제거하기 위해 선을 단순화하는 것은 선의 길이와 베 지어 곡선 에있는 정점의 양에 따라 옵션이기도 합니다.
SaultDon

오, 내 말은, 잔디는 나에게 이해가되지 않습니다 ...지도 이름, 위치 이름, dbase, 영구 ... 나는이 대답을 사용하는 방법을 '발견'하려고 노력했지만 (풀에 대한 사전 지식이 전혀 없음), 비참하게 실패했습니다. 파일은 예상치 못한 곳으로 이동하는 것 같습니다 (파일이 아닌 것 같습니까?).지도를 선택하는 방법을 찾은 후 일반화 대화 상자에서 변환 된 레이어를 선택할 수 없었습니다 (의미가 무엇인지 알지 못함) 지도) ... 악몽. 내가 그것을 모두 해결할 수 있다면 물건을 본다 :)
다른 벤

1

QGIS 2.0 버전 이후의 다른 방법이 있습니다.

처리> 도구 상자에서 GRASS 및 SAGA 도구에 액세스 할 수 있습니다. 평활화를 위해 v.generalize뿐만 아니라 SAGA의 라인 단순화도 있습니다. 이 도구는 일반 shapefile에서 작동하므로 잔디 벡터가 필요하지 않습니다.

여기에 이미지 설명을 입력하십시오

배치 모드는 아직 잘 풀리지 않습니다 (오른쪽 메뉴를 마우스 오른쪽 버튼으로 클릭하고 "일괄 처리로 실행"을 선택하십시오. 하나의 파일을 모두 수동으로 선택해야하기 때문입니다. 위에서 언급 한 일반화 플러그인을 사용하면 더 많은 파일을 더 간단하게 선택할 수 있습니다. 하지만 저장할 파일을 지정하지 않은 경우에만 작동합니다. 그렇지 않으면 플러그인이 중단됩니다.


1

부드러운 형상 alghoritm의 아래는 Processing Toolbox -> QGis geoalghoritms -> Vector.

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