Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Python
21-12-2010, 01:04,
#1
Python
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()
21-12-2010, 11:52,
#2
RE: Python - dane warstwy o określonej nazwie
Fragment fToolsów (pióra, a raczej klawiatury, Carsona Farmera):

Kod:
def getMapLayerByName( myName ):
    layermap = QgsMapLayerRegistry.instance().mapLayers()
    for name, layer in layermap.iteritems():
        if layer.name() == myName:
            if layer.isValid():
                return layer
            else:
                return None
21-12-2010, 22:43,
#3
RE: Python
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" Smile
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 Smile
Na razie korzystam z tego co jest na stronie http://www.qgis.org
21-12-2010, 22:47,
#4
RE: Python
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 Smile
21-12-2010, 23:38,
#5
RE: Python
No jedną funkcję dodatkową już mam. Za to pytań jeszcze więcej Smile

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?
21-12-2010, 23:43,
#6
RE: Python
Trzeci punkt mojej wyliczanki Smile 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
21-12-2010, 23:46,
#7
RE: Python
Dzięki bardzo.
Teraz jest OK.
21-12-2010, 23:50,
#8
RE: Python
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.
22-12-2010, 10:46,
#9
RE: Python
Jak najprościej zrobić repozytorium wtyczek wewnątrz firmy?
22-12-2010, 12:01,
#10
RE: Python
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.


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Python: selekcja elementów randyX 0 1 849 28-06-2016, 15:05
Ostatni post: randyX
  Kreator zapytań a Python Rayo 2 5 805 26-07-2012, 20:39
Ostatni post: Rayo
  Python - tabela atrybutów odwołanie Jarek_Re 6 13 896 30-05-2012, 11:51
Ostatni post: Rayo
  Python: valueMap damian 8 14 930 09-12-2011, 02:07
Ostatni post: borys
  Python - pytanie Rayo 2 5 852 29-08-2011, 18:56
Ostatni post: Rayo

Skocz do: