5.3. Lesson: 서식
디지타이즈 작업으로 새 데이터를 추가할 때, 피처에 대한 속성을 입력할 수 있는 대화 창이 나타납니다. 그러나 이 기본 대화 창은 한 눈에 파악하기 어렵습니다. 특히 여러분이 대용량 데이터셋을 생성하거나, 다른 사람들에게 디지타이즈 작업을 부탁했는데 기본 서식을 이해하기 어려워 할 경우 유용성 문제가 제기될 수 있습니다.
QGIS를 사용하면, 다행히도 레이어에 대한 사용자 지정 대화 창을 생성할 수 있습니다. 이 강의에서 그 방법을 배워보겠습니다.
이 강의의 목표: 레이어에 대한 서식을 생성하기.
5.3.1. Follow Along: QGIS 서식 디자인 기능 이용
Select the
roads
layer in the Layers panelEnter Edit Mode as before
Open the
roads
layer’s attribute tableRight-click on any cell in the table. A short menu will appear, that includes the Open form entry.
Click on it to see the form that QGIS generates for this layer
물론 항상 Attribute Table 에서 특정 거리를 찾아봐야 하는 것보다 맵을 보면서 이 작업을 할 수 있다면 좋겠죠.
Select the roads layer in the Layers panel
Using the Identify Features tool, click on any street in the map.
The Identify Results panel opens and shows a tree view of the fields values and other general information about the clicked feature.
At the top of the panel, check the Auto open form for single feature results checkbox in the Identify Settings menu.
Now, click again on any street in the map. Along the previous Identify Results dialog, you’ll see the now-familiar form:
Each time you click on a single feature with the Identify tool, its form pops up as long as the Auto open form is checked.
5.3.2. Try Yourself 서식을 이용해서 값 편집
편집 모드에 들어온 상태라면, 이 서식을 사용해서 피처의 속성을 편집할 수 있습니다.
(편집 모드가 아니라면) 편집 모드를 활성화하십시오.
Using the Identify Features tool, click on the main street running through Swellendam:
Edit its highway value to be
secondary
Exit edit mode and save your edits
Open the Attribute Table and note that the value has been updated in the attributes table and therefore in the source data
5.3.3. Follow Along: 서식 항목 유형 설정
서식을 사용해서 편집하는 것도 좋지만, 모든 것을 직접 입력해야 하기도 합니다. 다행스럽게도, 서식에는 서로 다른 다양한 방법으로 데이터를 편집할 수 있도록 해주는, 소위 말하는 *위젯*이 여러 종류 있습니다.
Open the roads layer’s Properties…
Fields 탭을 선택하십시오. 다음과 같은 창을 볼 수 있습니다.
Switch to the Attributes Form tab. You’ll see this:
Click on the
oneway
row and choose Checkbox as Widget Type in the list of options:OK 를 클릭합니다.
Enter edit mode (if the
roads
layer is not already in edit mode)Click on the same main road you chose earlier
You will now see that the oneway attribute has a
checkbox next to it denoting True
(checked) or False
(unchecked).
5.3.4. Try Yourself
highway 항목에 더 적합한 위젯을 설정해보십시오.
Answer
For the TYPE, there is obviously a limited amount of types that a road can be, and if you check the attribute table for this layer, you’ll see that they are predefined.
Set the widget to Value Map and click Load Data from Layer.
Select roads in the Label dropdown and highway for both the Value and Description options:
Click OK three times.
If you use the Identify tool on a street now while edit mode is active, the dialog you get should look like this:
5.3.5. Try Yourself 테스트 데이터 생성
완전히 새로운 여러분만의 사용자 지정 서식을 디자인할 수도 있습니다.
Create a simple point layer named
test-data
with two attributes:name (text)
age (integer)
이 새 레이어에 디지타이즈 작업 도구로 포인트 몇 개를 찍어 간단한 데이터를 준비하십시오. 새 포인트를 만들 때마다 QGIS의 기본 속성 부여 서식이 나타날 것입니다.
참고
이전 단계에서 맞추기 옵션을 활성화시킨 채라면 비활성화시켜야 할 수도 있습니다.
5.3.6. Follow Along: 새 서식 생성
Now we want to create our own custom form for the attribute data capture phase. To do this, you need to have QT Designer installed (only needed for the person who creates the forms).
Start QT Designer.
새 대화 창을 생성할 수 있는 다음 대화 창이 나타납니다.
창의 (기본적으로) 왼쪽에 있는 Widget Box 를 찾아보십시오. Line Edit 라는 항목을 담고 있습니다.
이 항목을 여러분의 서식으로 클릭 & 드래그합니다. 서식에 새로운 Line Edit 이 생성될 것입니다.
이 새로운 라인 편집 요소를 선택하면 (기본적으로 창의 오른쪽에 있는) 요소의 속성 창을 볼 수 있습니다.
Set its name to
name
.Using the same approach, create a new Spin Box and set its name to
age
.Add a Label with the text
Add a New Person
in a bold font (look in the object properties to find out how to set this). Alternatively, you may want to set the title of the dialog itself (rather than adding a label).Add a Label for your Line Edit and your Spin Box.
Arrange the elements to your own desire.
사용자의 대화 창 아무 곳이나 클릭하십시오.
Find the Lay Out in a Form Layout button (in a toolbar along the top edge of the screen, by default). This lays out your dialog automatically.
Set the dialog’s maximum size (in its properties) to
200
(width) by150
(height).Your form should now look similar to this:
Save your new form as
exercise_data/forms/add_people.ui
When it’s done saving, you can close Qt Designer
5.3.7. Follow Along: 서식과 사용자 레이어의 연계
Go back to QGIS
레이어 목록의 test-data 레이어를 더블클릭해서 속성 테이블을 엽니다.
Click on the Attributes Form tab in the Layer Properties dialog
Attribute editor layout 드롭다운 메뉴에서 Provide ui-file 을 선택합니다.
Click the ellipsis button and choose the
add_people.ui
file you just created:Click OK on the Layer Properties dialog
Enter edit mode and capture a new point
이제 (QGIS가 보통 생성하는 기본 대화 창 대신) 사용자 지정 대화창이 나타날 것입니다.
If you click on one of your points using the Identify Features tool, you can now bring up the form by right clicking in the identify results window and choosing from the context menu.
If you are in edit mode for this layer, that context menu will show
instead, and you can then adjust the attributes in the new form even after initial capture.
5.3.8. In Conclusion
데이터 편집이나 생성 시 서식을 이용하면 훨씬 편하게 작업할 수 있습니다. 위젯 유형을 편집하거나 완전히 새로운 서식을 생성해서 해당 레이어를 위해 새 데이터를 디지타이즈하는 사람의 경험을 향상시켜 오해 및 불필요한 오류를 최소화할 수 있습니다.
5.3.9. Further Reading
If you completed the advanced section above and have knowledge of Python, you may want to check out this blog entry about creating custom feature forms with Python logic, which allows advanced functions including data validation, autocompletion, etc.
5.3.10. What’s Next?
QGIS의 표준 액션 가운데 하나가 피처를 식별하는 작업과 동시에 서식을 여는 것입니다. 그러나 사용자가 정의한 사용자 지정 액션을 실행하도록 할 수 있습니다. 이것이 다음 강의의 내용입니다.