Existe um Shapefile existente, que eu quero adicionar.
No momento, meu código se parece com:
self.iface.addVectorLayer(self.shpFilePath, "Track", "ogr")
Funciona bem, mas quero definir os crs dentro do código. É possível? Encontrei algumas perguntas semelhantes como esta: Selecione programaticamente um CRS no QGIS 2.4 usando Python
Mas eu não faço funcionar de qualquer maneira.
coordinate-system
pyqgis
vector
Hinne123
fonte
fonte
Com base nesta postagem no blog e na resposta para Como posso especificar o CRS de uma camada raster em pyqgis? , você pode conseguir o que deseja dessa maneira:
Nota: Se você ainda estiver usando o QGIS v2.x (BTW, não deve: P), use o nome da variável "/ Projections / defaultBehaviour".
fonte
O código a seguir deve permitir que você adicione uma camada vetorial sem que a janela pop-up do CRS apareça (pelo menos ela não aparece para mim):
Simplesmente mude o
4326
valor CRS nos dois casos para o ID da autoridade de sua escolha, conforme mostrado na imagem:fonte
Depois de meses depois, encontrei uma solução. Você deve adicionar duas linhas antes e no final do script, que é de @Domokos Endre:
fonte
Para mim, qualquer solução acima não funciona. Talvez porque eu esteja carregando csv como camada vetorial, não um arquivo de forma. A única maneira de fazê-lo funcionar é:
fonte
Esta resposta descreve como evitar esse diálogo especificando o CRS no URL usado para carregar o arquivo na memória em primeiro lugar. Portanto, em vez de passar o caminho Shapefile diretamente para
addVectorLayer()
, crie umQgsVectorLayer
com o URL apropriado e, em seguida, chameaddMapLayer()
.fonte