我正在尝试使用Python脚本将文件导入到QGIS中。我在尝试使它接受CRS时遇到了问题。迄今为止的代码如下:
from PyQt4.QtGui import * from PyQt4.QtCore import * from qgis.core import * from qgis.utils import iface # ----1 在此处设置文件名 InFlnm='Input.CSV'
# ---2 在此处设置路径名 InDrPth='G:/test'
# ---3 为uri构建文件名和路径 InFlPth="file:///"+InDrPth+InFlnm
# ---4 在此处设置导入Sting注意只需要设置x和y,其他的自动完成! uri = InFlPth+"?delimiter=%s&xField=%s&yField=%s" % (",","x","y")
# ---5 将点加载到图层中 bh = QgsVectorLayer(uri, InFlnm, "delimitedtext")
# ---6 设置CRS(不确定这是否有效?) bh.setCrs(QgsCoordinateReferenceSystem(32365, QgsCoordinateReferenceSystem.EpsgCrsId))
# ---7 在QGIS中显示图层(这里我得到了一个语法错误?) QgsMapLayerRegistry.instance().addMapLayer(bh)
现在以上所有内容都可以正常工作,并且当我注释掉第6步时,QGIC会提示我选择CRS,然后执行最后一行脚本以显示该图层。
但是,如果我尝试去掉第6步中注释符###,则会在显示点的最后一行(步骤7)上报告语法错误。不确定这里的技巧是什么 - 我对Python相当陌生,但是熟悉其他一些编程语言。
from PyQt4.QtGui import * from PyQt4.QtCore import * from qgis.core import * from qgis.utils import iface # ----1 在此处设置文件名 InFlnm='Input.CSV'
# ---2 在此处设置路径名 InDrPth='G:/test'
# ---3 为uri构建文件名和路径 InFlPth="file:///"+InDrPth+InFlnm
# ---4 在此处设置导入Sting注意只需要设置x和y,其他的自动完成! uri = InFlPth+"?delimiter=%s&xField=%s&yField=%s" % (",","x","y")
# ---5 将点加载到图层中 bh = QgsVectorLayer(uri, InFlnm, "delimitedtext")
# ---6 设置CRS(不确定这是否有效?) bh.setCrs(QgsCoordinateReferenceSystem(32365, QgsCoordinateReferenceSystem.EpsgCrsId))
# ---7 在QGIS中显示图层(这里我得到了一个语法错误?) QgsMapLayerRegistry.instance().addMapLayer(bh)
现在以上所有内容都可以正常工作,并且当我注释掉第6步时,QGIC会提示我选择CRS,然后执行最后一行脚本以显示该图层。
但是,如果我尝试去掉第6步中注释符###,则会在显示点的最后一行(步骤7)上报告语法错误。不确定这里的技巧是什么 - 我对Python相当陌生,但是熟悉其他一些编程语言。