Forum QGIS

Pełna wersja: Python
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Stron: 1 2 3
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()
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
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
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
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?
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
Dzięki bardzo.
Teraz jest OK.
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.
Jak najprościej zrobić repozytorium wtyczek wewnątrz firmy?
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.
Stron: 1 2 3