Pracuję nad dużym projektem GIS i brak możliwości sortowania elementów w panelu Warstwy sprawia mi trudność. W panelu Warstwy mogę mieć do 250 warstw.
Mam specjalny schemat nazewnictwa dla wszystkich importowanych plików rastrowych TIFF i georeferencji w QGIS. Ale kiedy je importuję, nie mogę importować ich pojedynczo w kolejności alfabetycznej, ponieważ moi współpracownicy pracują nad niektórymi plikami, a nad innymi. Tak więc elementy w panelu Warstwy są wszędzie. Program nie jest wystarczająco inteligentny, aby posortować je w kolejności alfabetycznej. Zamiast tego sortuje je w kolejności, w jakiej je importuję.
Tutaj spójrz na ten zrzut ekranu.
Czy w QGIS nie ma wbudowanej opcji umożliwiającej sortowanie tych elementów? Jeśli nie, to czy mogę zainstalować wtyczkę, która pozwoli mi to zrobić?
Edycja: Znalazłem to i kilka pierwszych wierszy kodu wydaje się załatwić sprawę.
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from qgis.utils import iface
mw = iface.mainWindow()
lgd = mw.findChild(QTreeWidget, "theMapLegend") # get ref to object by type/objectName
lgd.sortItems(0, Qt.AscendingOrder) # sort first column (Qt.DescendingOrder to reverse)
Ale nie jestem biegłym programistą C ++ ani programistą Python. Poważnie? ... Czy muszę wybrać książkę kucharską do programowania, aby posortować warstwy w QGIS? Czy to może być trudniejsze? ...
Czy nie ma wtyczki, która mogłaby wykonywać tę samą pracę? Boję się używać kodu, którego nie rozumiem w ważnym projekcie.
Odpowiedzi:
Możesz użyć wtyczki, którą napisałem, patrz https://plugins.qgis.org/plugins/SortLayers/
Ta wtyczka porządkuje alfabetycznie wszystkie warstwy w panelu warstw (od A do Z lub od Z do A).
Korzystasz z niego, naciskając przycisk.
źródło
Istnieje żądanie otwartej funkcji dla tej funkcji: http://hub.qgis.org/issues/6828
źródło