0

我正在尝试使用从 CSV 加载到点层的脚本。我使用的代码是:

uri = "file:///some_path/PyQGIS/Some.csv?delimiter={}&xField={}&yField={}".format(os.getcwd(), ";", "X", "Y")

vlayer = QgsVectorLayer(uri, "Name", "delimitedtext")

QgsProject.instance().addMapLayer(vlayer)

.csv 文件的结构如下: SomeValue ----- X ----- Y

因此,坐标根据 Amersfoort (EPSG:4289) 放置,例如:X = 213404,Y = 500846。尝试手动加载时,一切正常。但是在脚本中,它似乎不起作用。澄清一下:使用的分隔符是 ;

提前致谢。

4

2 回答 2

0

您可以通过添加到 URI 定义来指定数据集的投影。&crs=epsg:4723所以你的情况变成:

uri = "file:///some_path/PyQGIS/Some.csv?delimiter={}&crs=epsg:4289&xField={}&yField={}".format(os.getcwd(), ";", "X", "Y")

vlayer = QgsVectorLayer(uri, "Name", "delimitedtext")

QgsProject.instance().addMapLayer(vlayer)
于 2021-03-31T07:38:45.807 回答
0

这个问题的答案已通过删除代码的“os.getcwd()”部分得到解决。希望这将帮助任何有类似问题的人。

于 2021-04-21T06:41:24.877 回答