Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
QGis API - kilka pytań początkującego
23-01-2013, 16:14, (Ten post był ostatnio modyfikowany: 23-01-2013, 16:14 {2} przez borys.)
#2
RE: QGis API - kilka pytań początkującego
Cytat:1. Gdzie zgłaszać błędy? - np. jak się w tytule projektu użyje znaku, który nie może znaleźć się w nazwie pliku, to nie da się zrobić 'Save as'

http://hub.qgis.org/

Po zalogowaniu obok zakładki "zagadnienia" masz drugą "nowe zagadnienie".

Głupia sprawa: ktoś wie, jak się zarejestrować? Smile) Zdaje się, że musisz się zarejestrować na wiki OsGEO http://wiki.osgeo.org i to będzie Twoje OSGeo ID, którym się wszędzie logujesz. Ale głowy nie dam, bo ta strona jest młodsza od mojego loginu. Mam nadzieję, że nie przeszkadza Ci zbytnio takie zacieśnienie powiązania z Fundacją Smile bo nie wiem, czy są również lokalne loginy.

Cytat:2. Jak z poziomu API ustawić CRS projektu?

Póki QGIS ma tylko jedną mapę, CRS ustawia się w niej, a nie w projekcie:

Kod:
crs = QgsCoordinateReferenceSystem ('epsg:2178')
qgis.utils.iface.mapCanvas().mapRenderer().setDestinationCrs(crs)

gdzie qgis.utils.iface to oczywiście aktualna instancja QgisInterface (będę tu używał ścieżek z konsoli 1.8; w konsoli 1.9 oraz we wtyczkach jest do niej prostszy dostęp).

Cytat:3. Czy gdzieś jest udokumentowane jak identyfikowane/numerowane są grupy i warstwy?

Rzuć okiem na klasę: http://qgis.org/api/classQgsLegendInterface.html
Jej metody zwracają trochę niespójne wyniki:

Kod:
qgis.utils.iface.legendInterface().groups()
zwraca listę (wyświetlanych) nazw grup, numerowaną w legendzie od góry na dół

Kod:
qgis.utils.iface.legendInterface().layers()
zwraca listę warstw (jako obiekty), numerowaną na mapie od góry na dół. Uwaga: Kolejność warstw na mapie zwykle jest taka jak w legendzie, ale od wersji bodaj 1.8 przybył panel "Kolejność warstw" i można wymusić inną.

Kod:
qgis.utils.iface.legendInterface().groupLayerRelationship()
zwraca jedną drzewiastą listę wszystkich nazw grup i warstw, gdzie nazwy grup są to (nieunikalne!) nazwy wyświetlane w legendzie, natomiast pod nazwą warstwy kryje się faktycznie unikalne id, a nie nazwa z legendy. Mając tę ostatnią nazwę warstwy, samą warstwę możemy odszukać w tym słowniku:

Kod:
QgsMapLayerRegistry().instance().mapLayers()


Wiadomości w tym wątku
RE: QGis API - kilka pytań początkującego - przez borys - 23-01-2013, 16:14

Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Zniknęło kilka etykiet Karolek 0 2 075 18-05-2020, 15:26
Ostatni post: Karolek
  kalkulator pól kilka warunków Magda 16 60 308 19-12-2014, 14:35
Ostatni post: martel
  [overpass api] import do qgis damien 1 11 543 21-11-2013, 00:05
Ostatni post: mdzidek
  Kilka okien mapy martel 3 18 464 15-10-2013, 22:39
Ostatni post: borys
  Wielka prośba początkującego demo 1 10 753 19-06-2013, 07:10
Ostatni post: [wiki]
  połączyć wiele/kilka poligonów w jeden diunida 5 42 862 27-02-2013, 13:30
Ostatni post: borys
  kilka typów na jednej warstwie [wiki] 13 62 722 29-02-2012, 12:43
Ostatni post: Rayo
  QGIS API maciek 1 10 992 04-01-2012, 17:13
Ostatni post: borys
  kilka warstw liniowych w jedną [wiki] 2 15 540 14-03-2011, 11:55
Ostatni post: [wiki]

Skocz do: