qgis服务端搭建高可用教程(PyQGIS入门2加载csv文件)

引言

QGIS是一款开源的GIS地理化工具,QGIS可以通过内嵌的Python空间进行脚本编写和二次开发。本期为PyQGIS系列内容的第二期,请大家点击关注期待后续的内容。

PyQGIS系列笔记:

PyQGIS入门「1、瓦片地图加载」

本期目标:将csv文件中的经纬度数据加载到QGIS图层中。

本文使用的QGIS版本为 QGIS 3.16.7。

qgis服务端搭建高可用教程(PyQGIS入门2加载csv文件)(1)

一、手动加载经纬度数据

1、添加定界文本数据图层

添加方式:图层→添加图层→添加定届文本数据图层

qgis服务端搭建高可用教程(PyQGIS入门2加载csv文件)(2)

2、选择csv文件、横坐标、纵坐标等信息

qgis服务端搭建高可用教程(PyQGIS入门2加载csv文件)(3)

注:csv文件建议使用utf-8编码格式。

3、效果演示

qgis服务端搭建高可用教程(PyQGIS入门2加载csv文件)(4)

注:图层右键点击缩放到图层范围即可快速定位。

qgis服务端搭建高可用教程(PyQGIS入门2加载csv文件)(5)

二、Python加载经纬度数据

1、使用的函数

vlayer = QgsVectorLayer(layer_url, layer_name, type) #生成图层

layer_url:图层地址(对应图层的源)

layer_name:图层名称

type:此处填写"delimitedtext",即定界文本数据

QgsProject.instance().addMapLayer(vlayer) #添加图层

2、源url分析

qgis服务端搭建高可用教程(PyQGIS入门2加载csv文件)(6)

源:

file:///C:/Users/admin/Desktop/qgis图层/qgis课件/基础数据.csv?type=csv&maxFields=10000&detectTypes=yes&xField=经度&yField=纬度&crs=EPSG:4326&spatialIndex=no&subsetIndex=no&watchFile=no

将源url解码后:

file:///C:/Users/admin/Desktop/qgis图层/qgis课件/基础数据.csv?type=

csv&maxFields=10000&detectTypes=yes&xField=经度&yField=纬度&crs=EPSG:4326&spatialIndex=no&subsetIndex=no&watchFile=no

注意几个细节:

①建议使用英文路径,若使用中文路径会增加更多的转码工作。

②本地路径必须以 file:/// 为前缀。

3、实战演示

1)layer_url 构造

from urllib.parse import quote path = 'D:/qgistool/' quote('基础数据.csv') url = "file:///{path}?type=csv&xField={x}&yField={y}&crs=EPSG:4326".format(path=path,x=quote('经度'),y=quote('纬度'))

2)图层创建

data_layer = QgsVectorLayer(url, "基础数据图层", "delimitedtext") QgsProject.instance().addMapLayer(data_layer)

3)效果演示

qgis服务端搭建高可用教程(PyQGIS入门2加载csv文件)(7)


如果你觉得文章还不错,请 点赞、分享、关注、转发 ,PyQGIS 将是一期系列内容,下期内容很快更新。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页