QGIS를 사용하여 자동으로 속성을 생성 하시겠습니까?


11

새 기능을 만드는 동안 ID를 자동 생성하고 싶습니다. 새 포인트를 만들 때마다 ID가 다음과 같이 1 씩 증가합니다.

Feature 1: id 1
Feature 2: id 2
Feature 3: id 3

이것을 어떻게 공격 할 수 있습니까?

답변:


8

레이어 를 마우스 오른쪽 버튼으로 클릭Properties > Fields 하고을 클릭 하면 속성 테이블에 자동으로 표시되는 값을 입력하거나 표현식을 사용하여 기본값Text Edit 을 설정할 수 있습니다 .

불행히도 $rownum(기능의 고유 ID를 가져와야 함) 과 같은 표현식을 사용하면 작동하지 않습니다 (기능이 먼저 커밋되어야하기 때문입니다). 그러나 생성 된 기능의 수를 세고 추가하는 함수를 만들 수 있습니다 . 이미지와 같이 함수 편집기에 액세스 할 수 있습니다 .

기능 편집기

그런 다음 함수 편집기에서 새 파일을 작성하거나 기존 파일을 편집하고 다음 코드를 사용하십시오.

from qgis.core import *
from qgis.gui import *

@qgsfunction(args='auto', group='Custom')
def update(feature, parent):
    layer = qgis.utils.iface.activeLayer()
    x = layer.featureCount()
    return x + 1

로드 를 클릭 한 후 옆 에있는 표현식 탭으로 이동하여 표현식을 삽입하십시오.

update()

그런 다음 확인을 클릭 하면 미리보기 값이 표시됩니다.

시사

확인 , 적용 등을 클릭 하면 기능을 만들 때 선택한 필드에 자동으로 고유 ID가 생성됩니다.



3

새 기능을 만들 때 기본값을 설정할 수 없지만 다음 해결 방법을 시도해 볼 수 있습니다.

  • 기능 생성이 완료되면 속성 테이블로 이동하십시오.
  • 필드 계산기로 이동하여 idInt 유형 의 새 열을 만듭니다.
  • @row_number행 번호에 따라 고유 한 베일을 생성하는 값 삽입 으로
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.