Są dwa poziomy wtajemniczenia: skryptowanie w konsoli Pythona oraz pisanie wtyczek. Na początek można otworzyć konsolę (w menu Wtyczki) i tam poćwiczyć sam język oraz dostęp do warstw, obiektów itp. Mnóstwo nietypowych działań (zwłaszcza na warstwie wektorowej), do których nie ma gotowego narzędzia, można wykonać za pomocą kilku poleceń i pętli w konsoli. Potem można zacząć tworzyć wtyczkę, która jest już znacznie bardziej złożonym tworem niż te kilka luźnych poleceń.
Skrypty i wtyczki piszemy w Pythonie 2.7 (być może 2.6 w niektórych instalacjach - niewielka różnica), rozmaite samouczki do samego języka są do wygooglania.
Samouczki do QGISa są chyba trzy:
- Największy, obejmujący zarówno Konsolę oraz pisanie wtyczek:
http://www.qgis.org/pyqgis-cookbook/index.html
- Może lżejszy będzie taki do konsoli:
http://www.qgisworkshop.org/html/worksho...rial2.html
- Naszego Piotrka i po ludzku, ale tylko do wtyczek:
http://my.opera.com/p0cisk/blog/wlasna-w...poligonowa
Potrzebna będą jeszcze dwie ściągi:
- API QGIS-a (to jest do C++, ale nazwy klas i metod są te same):
http://qgis.org/api/1.8/
- API Qt4 (głównie do budowania GUI wtyczek, ale też typy zmiennych QString i QVariant):
http://pyqt.sourceforge.net/Docs/PyQt4/classes.html
Jeśli chodzi o oprogramowanie, to do zabawy w konsoli wystarczy sam QGIS :-) , do pisania wtyczek potrzebny będzie jakiś wygodny edytor (pod windowsami np. Notepad++), do budowania interfejsu wtyczek Designer z pakietu deweloperskiego Qt (ale przedmiotowa wtyczka obejdzie się bez niego, bo tu pewnie całym interfejsem będzie klawisz narzędzia oraz zwykłe okienko QMessageBox). No i jakiś program graficzny do narysowania ikonki :-)
Warto też podglądać istniejące wtyczki. Akurat dość rzadko we wtyczkach robi się nowe narzędzie mapowe (takie do klikania w te linie), ale przykład znajdziesz np. we wtyczce ProfileTool. Prawdopodobnie takie narzędzie jest najlepszym wyjściem, chociaż nie mam pewności, może prościej używać zwykłego narzędzia zaznaczania i niech wtyczka reaguje na sygnał selectionChanged(), emitowany przez warstwę... Można też zerknąć do wtyczki CADTools, jak tam jest rozwiązane wykrywanie klikania w elementy (jeśli obsługa tej wtyczki jest nieintuicyjna, to w helpie ma świetne filmiki).
Ważna uwaga: API w wersjach 1.0-1.8 jest wstecznie kompatybilne, natomiast w rozwojowej wersji 1.9.90 (de facto alpha nadchodzącej wersji 2.0) jest nieco zmienione, zwłaszcza jeśli chodzi o wektory. Dlatego powyżej podałem link do API 1.8 (link bez członu "1.8" prowadzi do obecnego rozwojowego API). Jeśli używasz wersji 1.8, to chyba bym się śmiało na niej uczył i nie kombinował z niestabilnym jeszcze API 2.0. Nie będzie to strata czasu, bo zmiany nie będą wielkie, a wszystkie samouczki są jeszcze do starego API.
Tu na forum czasaaaami co nieco o skryptowaniu można przeczytać, np.
http://forum.quantum-gis.pl/thread-857.html . W razie kłopotów pytaj śmiało.
EDIT: Aha, jeśli piszesz wtyczkę, to po każdej zmianie w kodzie musisz ją przeładować. W tym celu potrzebujesz wtyczki Plugin Reloader.
EDIT: Chyba wtyczka IdentifyPlus będzie najlepsza na wzór.