Hay un Shapefile existente, que quiero agregar.
Por el momento mi código se ve así:
self.iface.addVectorLayer(self.shpFilePath, "Track", "ogr")
Funciona bien, pero quiero definir los crs dentro del código. ¿Es posible? Encontré algunas preguntas similares como esta: seleccione mediante programación un CRS en QGIS 2.4 usando Python
Pero no lo hago funcionar de todos modos.
coordinate-system
pyqgis
vector
Hinne123
fuente
fuente
Basado tanto en esta publicación de blog como en la respuesta a ¿Cómo puedo especificar el CRS de una capa ráster en pyqgis? , puedes lograr lo que quieres de esta manera:
Nota: Si todavía está usando QGIS v2.x (por cierto, no debería: P), use el nombre de variable "/ Projections / defaultBehaviour" en su lugar.
fuente
El siguiente código debería permitirle agregar una capa vectorial sin que aparezca la ventana emergente CRS (al menos no me parece):
Simplemente cambie el
4326
valor de CRS en ambos casos al ID de autoridad de su elección como se muestra en la imagen:fuente
Después de meses después encontré una solución. Debe agregar dos líneas antes y al final del script que es de @Domokos Endre:
fuente
Para mí, cualquier solución anterior no funciona. Tal vez porque estoy cargando csv como capa vectorial, no como un archivo de forma. La única forma en que puedo hacer que funcione es:
fuente
Esta respuesta describe cómo evitar este diálogo especificando el CRS en la URL utilizada para cargar el archivo en la memoria en primer lugar. Entonces, en lugar de pasar la ruta de Shapefile directamente a
addVectorLayer()
, cree unQgsVectorLayer
con la URL apropiada y luego llameaddMapLayer()
.fuente