Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
QGIS API
30-12-2011, 00:27,
#1
QGIS API
Cześć,
to moje pierwsze kroki z API i konsolą pythona. Czy mógłby ktoś podać przykładowy skrypt jaki należy wpisać żeby od jednej warstwy odjąć drugą?
Mając taki przykład na pewno łatwiej było by napisać coś więcej.

z góry dziękuję za pomoc,
MF
04-01-2012, 17:13,
#2
RE: QGIS API
Jeśli chodzi o warstwy rastrowe, to w ten sposób nie poznasz API QGISa. QGIS jest generalnie wektorowy i większość operacji rastrowych wykonuje nie natywnie na wczytanych warstwach, tylko bezpośrednio na źródłowych plikach za pomocą API GDALa. Tak działa na przykład Kalkulator Rastrów (ten w menu Raster). Krótko mówiąc: w konsoli QGISa możesz dokładnie tak samo jak w dowolnej innej konsoli Pythona: załadować moduł osgeo.gdal, wczytać pliki, przetworzyć, zapisać, ale sam QGIS nie będzie miał z tym nic do czynienia. Jeśli Cię to interesuje, przykładów szukaj na stronach GDALa. Zamiast GDALa można użyć np. R, ale to nic nie zmieni w kwestii udziału QGISa.

Zaś jeśli chodzi o odejmowanie warstw wektorowych, czyli wycięcie z wieloboków warstwy A wieloboków z warstwy B, to jak najbardziej wykorzystasz API QGISa. Musisz dobrać się do tych dwóch warstw i iterować po wszystkich obiektach, próbując odjąć każdy obiekt z warstwy A od każdego z warstwy B. Oczywiście przy dużej liczbie obiektów, z których większość oczywiście na siebie nie zachodzi, oznacza to kupę daremnych pętli w Pythonie, co może być dość powolne.

Zacznij od Cookbooka stąd: http://www.quantum-gis.pl/czytelnia/programowanie . Nie pamiętam, czy tam jest napisane, jak się dobrać do aktualnie załadowanych warstw. Sprawa jest dość prosta. Do samego interfejsu QGISa dobierasz się tak:
qgis.utils.iface
do płótna mapy tak:
qgis.utils.iface.mapCanvas()
a np. do bieżącej warstwy tak:
qgis.utils.iface.mapCanvas().currentLayer()

Jak obsłużyć te obiekty, powie Ci już dokumentacja API i rozdziały Loading Vector layers, Using vector layers i tym podobne z Cookbooka.


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [overpass api] import do qgis damien 1 11 467 21-11-2013, 00:05
Ostatni post: mdzidek
Big Grin QGis API - kilka pytań początkującego gregsa 7 34 789 22-02-2013, 17:50
Ostatni post: borys

Skocz do: