Python - Wersja do druku +- Forum QGIS (http://forum.quantum-gis.pl) +-- Dział: Desktop GIS (http://forum.quantum-gis.pl/forum-4.html) +--- Dział: QGIS (http://forum.quantum-gis.pl/forum-5.html) +--- Wątek: Python (/thread-332.html) |
Python - Rayo - 21-12-2010 Jak w Pythonie uzyskać dane warstwy o określonej nazwie? Coś podobnego jak poniżej, ale nie dla warstwy bieżącej, tylko o podanej nazwie. layer = self.iface.mapCanvas().currentLayer() RE: Python - dane warstwy o określonej nazwie - borys - 21-12-2010 Fragment fToolsów (pióra, a raczej klawiatury, Carsona Farmera): Kod: def getMapLayerByName( myName ): RE: Python - Rayo - 21-12-2010 Dzięki. Co prawda udało mi się to wcześniej rozwiązać w trochę inny sposób, ale to rozwiązanie jest bardziej "eleganckie" Swoją drogą myślałem, że istnieje jakaś gotowa funkcja.. Jeśli znacie jakieś materiały mogące pomóc w nauce pisania skryptów dla QGISa to proszę o info. Szczególnie mile widziane z dużą ilością przykładów Na razie korzystam z tego co jest na stronie http://www.qgis.org RE: Python - borys - 21-12-2010 No to już masz gotową funkcję ;-) Generalnie są 4 źródła: - http://www.qgis.org/pyqgis-cookbook/ - API Quantuma http://doc.qgis.org/stable/classes.html - API Qt4 http://doc.qt.nokia.com/stable/classes.html - istniejące wtyczki RE: Python - Rayo - 21-12-2010 No jedną funkcję dodatkową już mam. Za to pytań jeszcze więcej Np nie wiem jak odczytać piąty atrybut obiektu Robię tak: y.attributeMap()[5] gdzie y to mój obiekt W odpowiedzi dostaję coś takiego: <PyQt4.QtCore.QVariant object at 0x06BC49D0> Jak z tego wyciągnąć wartość atrybutu w formie tekstowej? RE: Python - borys - 21-12-2010 Trzeci punkt mojej wyliczanki Klas z prefiksem Q w nazwie szukaj w dokumentacji Qt, a klas z Qgs -- w quantumowej. http://doc.qt.nokia.com/stable/qvariant.html#toString RE: Python - Rayo - 21-12-2010 Dzięki bardzo. Teraz jest OK. RE: Python - borys - 21-12-2010 Innymi słowy: a = QVariant(2.5) a.toString() # zwróci QStringa "2.5" a.toInt() # zwróci krotkę (3, True), gdzie 3 to 2,5 zaokrąglone do integera, zaś True znaczy, że konwersja się udała. RE: Python - Rayo - 22-12-2010 Jak najprościej zrobić repozytorium wtyczek wewnątrz firmy? RE: Python - borys - 22-12-2010 Z punktu widzenia Quantuma, repozytorium to plik xml z metadanymi i linkami do zipów z wtyczkami. Ściągnij dowolne istniejące, np. http://pyqgis.org/repo/contributed , i przerób pod swoje wtyczki. Wtyczkę zipujesz razem z jej katalogiem, przy czym nazwa zipa do pierwszej kropki musi być dokładnie taka, jak zawartego katalogu, czyli albo nazwa_katalogu.zip, albo nazwa_katalogu.przyrostek.zip. Ta druga możliwość służy zamieszczaniu kilku wersji wtyczki, na przykład jednej stabilnej, a drugiej eksperymentalnej - ta ostatnia musi mieć wyższy numer, bo Quantum wybiera zawsze najwyższą kompatybilną wersję (zgodną z tagami <qgis_minimum_version> oraz <experimental>). Musisz niestety ręcznie pakować wtyczkę i edytować tego xmla, albo samemu napisać sobie skrypt, który to zrobi, bo nie mamy jeszcze stabilnego zautomatyzowanego frameworku do budowania repozytoriów. Ale prace nad nim są w trakcie i wczesną wiosną powinien być gotowy. |