QGIS教程 加载shape数据 矢量数据(批量)

一. 前言

本篇文章主要介绍QGIS的使用,包括如何加载矢量shape数据、查看数据属性、如何加载txt属性数据、怎么用脚本批量加载矢量数据等内容。

如果想了解QGIS,可以参考博文:
QGIS基本介绍

如果想了解shape数据格式详情,可以参考博文:
shape数据格式介绍(GIS)

二. 加载矢量数据流程

1. 打开QGIS

界面如下

2. 加载shp数据

使用快捷键【shift+Ctrl+v】或者依次点击上方菜单栏【Layer】【Data Source Manager】(也可直接拖动shape文件到QGIS对应Layer下),如下图,选择对应shape文件(.shp后缀的文件)

选择后点击下方【Add】即添加成功。在对应QGIS即可看到对应矢量数据Layer和对应矢量图。

3.查看数据的属性

选择Layers下方对应shape文件,右键然后选择选项【Open Attribute Table】,打开属性表,既可查看对应属性值表格。

也可以点击对应上方菜单操作按钮(i图标箭头按钮)

然后选择QGIS对应图形的位置,即可在界面右侧展现对应选中的属性值。

三. 如何加载txt文件属性数据

在我们项目中,可能会遇到需要加载txt文本文件数据的场景,下面讲介绍如何加载txt文本文件数据图层。

1.选择文件

在加载【Data Source Manager】对应界面选择【Delimited Text】,然后选择对应文件。

2.设置对应参数

(1)【File Format】设置:

注意txt或者csv文件,需要选择对应分隔方式,比如我的属性之间是用tab进行分隔,所有【File Format】需要选择【Custom delimiters】勾选上tab(其他分隔方式类似操作)

(2)【Geometry Definition】设置:

设置对应X field和对应Y Field(即对应经纬度对应列)

设置对应【Geometry CRS】 选择所用的坐标系,比如【EPSG4326 -WGS 84】

3. 添加对应数据

最后点击下方【Add】即可加载完成对应layer数据

四. 批量脚本加载数据

如果使用单个图层或少量数据加载,上述加载方法可以简单实现,但是如果涉及到很多数据需要加载,则需要使用python 插件脚本进行插入数据。

1. 打开界面

点击上方菜单栏【Plugins】,选择选择【Python Console】

即出现python脚本页面,可以通过脚本批量加载图层等操作。

2. 编辑脚本并运行

比如下图为加载某个文件夹下所有.shp结尾(需要批量加载其他数据同理)的shape数据,示例代码如下:

cpp 复制代码
import os
from qgis.core import QgsVectorLayer

# 替换为包含 Shapefile 文件的根文件夹路径,注意路径
root_folder = 'xxx'

# 遍历根文件夹下所有子文件夹
for subdir, dirs, files in os.walk(root_folder):
    for file in files:
        # 检查文件扩展名是否为 .shp
        if file.lower().endswith('.shp'):
            # 构建完整的文件路径
            shp_path = os.path.join(subdir, file)
            
            # 添加 Shapefile 到 QGIS
            layer = QgsVectorLayer(shp_path, file, 'ogr')
            QgsProject.instance().addMapLayer(layer)

运行该代码即可加载xxx文件夹下所有的shape数据layer。

注意点:如果一次加载数量过多,可能会造成QGIS卡死现象,可以考虑优化代码限制每次加载数量。

相关推荐
冷雨82817 小时前
arcgis平滑面的边缘
arcgis·gis
汪宁宇3 天前
如何在QT5+MinGW环境中编译使用QGIS开发地图应用
c++·qt·qgis·mingw·地图库
我那工具都齐_明早我过来上班3 天前
WebODM生成3DTiles模型在Cesium地图上会垂直显示问题解决(y-up-to-z-up)
前端·gis
Just_Paranoid4 天前
【Android UI】Android Drawable XML 标签解析
android·ui·vector·drawable·shape·selector
Just_Paranoid4 天前
【Android UI】Android 创建渐变背景 Drawable
android·ui·drawable·shape·gradient
爱看书的小沐6 天前
【小沐学WebGIS】基于Three.JS绘制二三维地图地球晨昏效果(WebGL / vue / react )
javascript·vue.js·gis·webgl·three.js·opengl·晨昏线
WebGIS开发7 天前
WebGIS开发实战:武汉旅游资源可视化平台开发与应用
信息可视化·gis·智慧城市·旅游·gis开发·webgis
GIS工具-gistools20218 天前
用 Sentinel-1 Sentinel-2 结合监测 矿场采掘情况
大数据·sentinel·gis
WebGIS开发8 天前
GIS开发实战 | 基于WebGIS的南京市古遗迹旅游管理系统
gis·gis开发·智慧文旅·webgis
GIS学姐嘉欣9 天前
0帧起手《Vue零基础教程》,从前端框架到GIS开发
前端·vue.js·前端框架·gis