Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Przecięcie warstw
26-02-2013, 12:36,
#1
Przecięcie warstw
Witam,

Szukam narzędzia w QGISie które pomoże mi zrobieniu przecięcia między dwoma warstwami. Mam jedną warstwę z której wybieram element i drugą poligonową, z której pobierane są informacje w których poligonach zawiera się wybrany element.

Np, że wybrana linia 1101 przecina obszary A01, B12, A09 albo obszar 184 przecina obszary A13, B04.
26-02-2013, 14:27,
#2
RE: Przecięcie warstw
Zdaje się, że takiego gotowego narzędzia jeszcze nie ma. Może ktoś chciałby napisać wtyczkę? Prosta robota, w sam raz na początek przygody Smile
26-02-2013, 14:56,
#3
RE: Przecięcie warstw
A można gdzieś znaleźć jakieś materiały odnośnie pisania wtyczek pod QGISa? W sensie jakieś kursy/poradniki/przykłady. Swego czasu trochę pisałem i może coś by się udało stworzyć.

A tak poza głównym tematem. Czy rysując linię lub poligon mogę dowiązać się do punktów już istniejących?
26-02-2013, 16:37,
#4
RE: Przecięcie warstw
Można ustawić przyciąganie do wartsw( snapowanie). Ustawienia/Opcje przyciągania Smile
27-02-2013, 01:52, (Ten post był ostatnio modyfikowany: 27-02-2013, 02:04 {2} przez borys.)
#5
RE: Przecięcie warstw
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.


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Automatyczne przecięcie warstw Roland_z_Gilead 3 10 196 29-01-2018, 15:52
Ostatni post: Roland_z_Gilead

Skocz do: