QGIS学习综述

一、QGIS点到线的最短距离

1.使用距离矩阵工具:依次点击“矢量”→“分析工具”→“距离矩阵”。在弹出的窗口中,“输入点图层”选择要计算的点图层,“目标点图层”选择线图层。设置好“输入唯一ID字段”和“目标唯一ID字段”,“输出矩阵的类型”选择“线性(N*kx3)距离矩阵”,可勾选“仅使用最近目标点”。点击“运行”,完成后会生成一个距离矩阵临时图层,打开其属性表,其中“Distance”字段即为点到线的最近距离。

2.使用NNJoin插件:先安装并启用NNJoin插件。然后选择“矢量”→“NNJoin”,在弹出的对话框中,“Input vector layer”选择点图层,“Join vector layer”选择线图层。设置好其他参数后点击“OK”,计算完成后会生成一个新的矢量图层,其属性表中的“distance”字段就是点到线的最近距离。

 

二、QGIS里的VLOOKUP 

 使用连接功能:首先将需要操作的两个图层加载到QGIS中,确保它们有一个共同字段。然后右键单击目标图层(即要添加数据的图层),选择“属性”。在弹出的对话框中,选择“连接”选项卡,点击加号按钮添加新连接。在“连接图层”下拉菜单中,选择源图层(即包含要导入数据的图层)。分别在“连接字段”和“目标字段”中,选择两个图层中的共同字段,勾选“已连接字段”,并选择要从源图层复制到目标图层的字段,可设置自定义前缀以便识别导入的数据,最后点击“确定” 。

三、矢量图层按字段分割导出

1. 将需要分割的矢量图层加载到QGIS画布中。

2. 打开“处理工具箱”,搜索“分割矢量图层”工具,双击打开。

3. 在“分割矢量图层”窗口中,“输入图层”选择要分割的矢量图层。

4. 选择用于分割的“唯一ID字段”,QGIS将根据该字段的唯一值来生成新图层。

5. 选择“输出文件类型”,QGIS支持多种文件格式,如SHP、GeoJSON等。

6. 指定“输出目录”,用于存放分割后生成的新文件。

7. 点击“运行”,完成后会在指定目录生成一系列新文件,每个文件对应唯一ID字段中的一个唯一值。

 

 四、沿线的点之间最短路径提取

使用“要素之间最短线”工具:若只需计算点与点之间不考虑沿线情况的最短线,可先将点数据加载到QGIS中,支持CSV等格式,可通过“图层”→“添加分隔文本图层”来添加。然后在“处理工具箱”中找到“矢量分析”→“要素之间最短线”工具,运行该工具,即可得到点之间的最短线图层和最短距离信息。

使用Road Graph插件:该插件可计算折线图层上两点间的最短路径。先从相关网站下载插件并复制到QGIS插件文件夹,在QGIS中启用该插件。激活后,在QGIS主窗口左侧会出现插件面板,选择要分析的折线图层,指定起点和终点,可选择按长度或时间等标准优化,点击“calculate”按钮计算最短路径,点击“export”可将结果导出为新的矢量图层。

 五、几何图形表达式

在QGIS中,几何图形表达式可通过 $geometry 函数结合其他几何操作函数,对图层要素的几何属性进行计算和处理,常用于字段计算器、标签表达式等场景。以下是常见的几何图形表达式及用法:
 
1、基础几何属性获取
 
获取几何类型
 geometry_type($geometry) 
示例:返回 Point (点)、 LineString (线)、 Polygon (面)等类型。

 获取几何维度
 dimension($geometry) 
示例:点返回 0 ,线返回 1 ,面返回 2 。

获取几何边界
 boundary($geometry) 
示例:面要素返回其边界线,线要素返回其端点(点集合)。
 
2、坐标与距离计算
 
获取中心点坐标
 centroid($geometry) 
示例:返回面要素的几何中心点。 

获取长度或面积

线/面长度: length($geometry) 

面面积: area($geometry) 
示例:计算线段长度或多边形面积(需确保图层坐标系为投影坐标系,否则结果无实际单位意义)。

点到线/面的距离
 distance($geometry, <目标几何对象>) 
示例:计算当前点到另一图层某线要素的最短距离:
 distance($geometry, geometry(get_feature('线图层', 'ID', 1))) 
 
3、几何转换与操作
 
 缓冲区(Buffer)
 buffer($geometry, <距离>, <段数>) 
示例:为点要素生成半径10米的缓冲区: buffer($geometry, 10, 32) 。

 简化几何(Simplify)
 simplify($geometry, <容差值>) 
示例:按0.5米容差简化线要素: simplify($geometry, 0.5) 。

 融合邻几何(Union)
 union($geometry, <其他几何对象>) 
示例:融合当前面与另一图层的面: union($geometry, geometry(get_feature('面图层', 'NAME', '区域A'))) 。
 
4、空间关系判断
 
 包含关系
 contains($geometry, <目标几何>) 
示例:判断面是否包含点: contains($geometry, point(116.4, 39.9)) 。

 相交关系
 intersects($geometry, <目标几何>) 
示例:判断线是否与面相交: intersects($geometry, geometry(get_feature('面图层', 'ID', 5))) 。

 是否重叠
 overlaps($geometry, <目标几何>) 
示例:判断两个面是否重叠。
 
5、高级应用:结合字段与函数
 
按属性动态计算缓冲区
例如,根据“半径”字段值生成缓冲区: buffer($geometry, "半径", 32) 。

多几何对象批量操作
结合 aggregate() 函数对图层内所有要素进行几何计算:
 aggregate('点图层', 'sum', area(buffer($geometry, 5))) 
(计算所有点的5米缓冲区面积总和)。

六、扇区图层的制作

1. 安装插件:点击“插件”菜单,选择“管理并安装插件”,在搜索框中输入“Shape Tools”,找到后点击安装。

2. 准备数据:制作包含扇区相关信息的CSV文件,需包含经纬度、扇区主方向角度、覆盖半径等核心字段。其中扇区主方向角度可通过方位角 -30°计算,若为负数则+360°,室分扇区通常设置为起始角度0°、结束角度359°。

3. 添加文本数据图层:点击“图层”→“数据源管理器”,选择“文本数据源”,找到之前制作的CSV文件。设置“分隔符”为“逗号”,“X字段”为经度,“Y字段”为纬度,点击“添加”,生成基站点位图层。

4. 生成扇区图层:点击顶部菜单栏“矢量”→“Shape Tools”→“创建形状”→“扇区”。在弹出的窗口中,“输入图层”选择导入的基站点位图层,“半径字段”选择“覆盖半径”列,“起始角度字段”和“结束角度字段”分别选择对应的角度列,“输出文件”指定扇区图层的保存路径,建议保存为Shapefile或GeoJSON格式,点击“运行”即可生成扇区图层。

5. 样式调整:扇区图层生成后会自动加载到地图中,可右键点击扇区图层,选择“属性”→“符号化”,调整颜色、透明度等样式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值