Il existe un fichier de formes existant, que je veux ajouter.
En ce moment, mon code ressemble à:
self.iface.addVectorLayer(self.shpFilePath, "Track", "ogr")
Cela fonctionne bien, mais je veux définir les crs dans le code. C'est possible? J'ai trouvé des questions similaires comme celle-ci: Sélectionner par programme un CRS dans QGIS 2.4 en utilisant Python
Mais je ne le fais pas fonctionner de toute façon.
coordinate-system
pyqgis
vector
Hinne123
la source
la source
Sur la base de ce billet de blog et de la réponse à Comment puis-je spécifier le CRS d'une couche raster dans pyqgis? , vous pouvez réaliser ce que vous voulez de cette façon:
Remarque: Si vous utilisez toujours QGIS v2.x (BTW, vous ne devriez pas: P), utilisez plutôt le nom de variable "/ Projections / defaultBehaviour".
la source
Le code suivant devrait vous permettre d'ajouter une couche vectorielle sans que la fenêtre contextuelle CRS n'apparaisse (au moins, elle n'apparaît pas pour moi):
Modifiez simplement la
4326
valeur CRS dans les deux cas en l' ID d'autorité de votre choix, comme indiqué dans l'image:la source
Quelques mois plus tard, j'ai trouvé une solution. Vous devez ajouter deux lignes avant et à la fin du script qui vient de @Domokos Endre:
la source
Pour moi, toute solution ci-dessus ne fonctionne pas. Peut-être parce que je charge csv en tant que couche vectorielle, pas un fichier de forme. La seule façon de le faire fonctionner est:
la source
Cette réponse décrit comment éviter cette boîte de dialogue en spécifiant le CRS dans l'URL utilisée pour charger le fichier en mémoire en premier lieu. Donc, au lieu de passer directement le chemin Shapefile à
addVectorLayer()
, créez unQgsVectorLayer
avec l'URL appropriée, puis appelezaddMapLayer()
.la source