QGIS에서 열별로 정렬 된 테이블의 행 번호를 할당하는 방법이 있습니까?


13

필드 계산기는 "$ rownum"이라는 "레코드"아래에 현재 행 번호를 반환 (할당)하는 기능이 있습니다.

정렬과 함께 작동시키는 방법이 있습니까? "길이"열을 기준으로 테이블을 정렬하고 길이가 가장 짧은 줄부터 가장 긴 줄의 순서 (시퀀스)를 가져오고 싶다고 가정하겠습니다.

열별로 정렬하고 순서 (순서)로 새 열을 채우기 위해 일부 사무실 스프레드 시트 소프트웨어를 쉽게 사용할 수 있다는 것을 알고 있습니다. 그러나 QGIS에서 전체 작업을 수행하고 싶습니다.

업데이트 : 해결 방법 으로 shapefile에서 피처의 순서를 변경하는 방법 도 있습니다 . -mmqgis 플러그인 및 함수 수정 / 정렬을 사용한 후 새 저장된 파일에서 "$ rownum"을 사용하십시오.

답변:


20

그래서 문제를 해결하기 위해 플러그인 ( Sort and Number )을 코딩했습니다 . 최대 3 개의 필드를 선택하고 이러한 필드에 따라 속성 테이블을 정렬 할 수 있습니다. 그런 다음 1부터 시작하여 속성 필드에 새 필드 (기본적으로 "순서"로 명명 됨)에 번호를 매 깁니다.

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


대단해 보인다. 이제이 플러그인을 테스트하겠습니다. 감사합니다.
Miro

2.8에서 처음 설치하면 약간의 오류가 발생했지만 2.14에서 테스트 한 다음 2.8에서 다시 테스트하면 훌륭하게 작동합니다. 감사합니다.
Miro

@ 미로 : 천만에요. 다른 사람들에게도 도움이되기를 바랍니다.
ArMoraer

@ArMoraer-훌륭한 플러그인!
Joseph

1
Bonn 3->이 도구가 마음에 들었습니다.
22:18에

7

필드 계산기로 확실하지는 않지만 다음과 같은 쿼리로 가상 레이어를 사용할 수 있습니다.

SELECT 
    * ,
    (SELECT count(*) FROM your_layer AS b WHERE a.length >= b.length) AS length_position
FROM your_layer AS a 
ORDER BY a.length

고맙지 만, 여전히 장기 릴리스 2.8을 사용하므로 2.14에서 가상 레이어를 처음 발견했습니다. 게다가 그것은 매우 느리게 작동했습니다. 일반적으로 이것이 가능하다면 다른 답변을 조금 더 기다릴 것입니다.
Miro
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.