Существует существующий шейп-файл, который я хочу добавить.
На данный момент мой код выглядит так:
self.iface.addVectorLayer(self.shpFilePath, "Track", "ogr")
Это работает нормально, но я хочу определить crs в коде. Является ли это возможным? Я нашел несколько похожих вопросов, таких как этот: программно выбрать CRS в QGIS 2.4 с использованием Python
Но я все равно не получаю работу.
coordinate-system
pyqgis
vector
Hinne123
источник
источник
На основании этого поста и ответа на вопрос Как я могу указать CRS растрового слоя в Pyqgis? , вы можете достичь того, что вы хотите, таким образом:
Примечание. Если вы все еще используете QGIS v2.x (кстати, вы не должны: P), используйте вместо этого имя переменной "/ Projection / defaultBehaviour".
источник
Следующий код должен позволить вам добавить векторный слой без появления всплывающего окна CRS (по крайней мере, для меня оно не отображается):
Просто измените
4326
значение CRS в обоих случаях на ID авторизации по вашему выбору, как показано на рисунке:источник
Спустя месяцы я нашел решение. Вы должны добавить две строки перед и в конец скрипта из @Domokos Endre:
источник
Для меня любое вышеуказанное решение не работает. Возможно, потому что я загружаю CSV как векторный слой, а не файл формы. Единственный способ заставить это работать:
источник
Этот ответ описывает, как избежать этого диалога, указав CRS в URL-адресе, который используется для загрузки файла в память. Поэтому вместо того, чтобы передавать путь к Shapefile
addVectorLayer()
, создайтеQgsVectorLayer
с соответствующим URL-адресом и затем вызовитеaddMapLayer()
.источник