Istnieje plik Shapefile, który chcę dodać.
W tej chwili mój kod wygląda następująco:
self.iface.addVectorLayer(self.shpFilePath, "Track", "ogr")
Działa dobrze, ale chcę zdefiniować crs w kodzie. Czy to możliwe? Znalazłem kilka podobnych pytań: Programowo wybierz CRS w QGIS 2.4 za pomocą Pythona
Ale i tak nie rozumiem.
coordinate-system
pyqgis
vector
Hinne123
źródło
źródło
Na podstawie zarówno tego postu na blogu, jak i odpowiedzi na pytanie Jak mogę określić CRS warstwy rastrowej w pyqgis? , możesz osiągnąć to, co chcesz w ten sposób:
Uwaga: Jeśli nadal używasz QGIS v2.x (BTW, nie powinieneś: P), zamiast tego użyj nazwy zmiennej „/ Projections / defaultBehaviour”.
źródło
Poniższy kod powinien umożliwić dodanie warstwy wektorowej bez wyświetlania okna podręcznego CRS (przynajmniej dla mnie to się nie pojawia):
Po prostu zmień
4326
wartość CRS w obu przypadkach na wybrany identyfikator urzędu, jak pokazano na obrazku:źródło
Po miesiącach znalazłem rozwiązanie. Powinieneś dodać dwie linie przed i na końcu skryptu, który pochodzi z @Domokos Endre:
źródło
Dla mnie powyższe rozwiązanie nie działa. Może dlatego, że ładuję csv jako warstwę wektorową, a nie plik kształtu. Jedyny sposób, w jaki mogę sprawić, by działał to:
źródło
Ta odpowiedź opisuje, jak uniknąć tego okna dialogowego, określając CRS w adresie URL używanym do załadowania pliku do pamięci. Zamiast więc przekazywać ścieżkę Shapefile bezpośrednio do
addVectorLayer()
, utwórzQgsVectorLayer
odpowiedni adres URL, a następnie wywołajaddMapLayer()
.źródło