整合本站QGIS相关帖子。
# 序
介绍 QGIS 使用技巧。
# 计算网格顶点坐标
使用 QGIS 创建好 [latex]\textbf{Polygon}[/latex] 网格后,所有网格组成一个巨大的矩形,覆盖整个研究区域。而我感兴趣的只是研究区域上每一个小网格的坐标。该文讲述如何在 QGIS 中创建网格并获取感兴趣网格的顶点坐标。
创建并获取所需网格
使用 Create grid 方法创建覆盖 [latex]\textbf{研究区域_Extent}[/latex] 的网格图层。
在生成的网格图层时选择了 EPSG:3857 投影坐标系,横竖间距选择一公里,点击执行后页面多了网格的临时图层。
由于创建的网格覆盖了整个 [latex]\textbf{Extent}[/latex],而我仅需覆盖研究区域的部分网格。在顶部工具栏中打开 [latex]\textbf{Select by location}[/latex] 工具,输入对应参数,选择底图之上的网格要素。
在顶部工具栏中点击 [latex]\textbf{Invert Feature Selection}[/latex],以此选中不在研究区域上的网格,进行删除操作。
删除多余网格后,剩下的就是覆盖在研究区域上的网格力。
计算网格顶点坐标
右键点击网格图层,打开属性表里的字段计算器。输入函数以获得顶点坐标。
point_n($geometry, 1) :在多边形中生成点坐标,[latex]1[/latex]为左上角顶点,[latex]2[/latex]为右上角顶点,[latex]3[/latex]为右下角顶点,[latex]4[/latex]为右下角顶点。 x() :获得平面中x坐标的值。 y() 同理。 transform() :进行坐标系转换。# 网格图层的坐标系为EPSG:3857,希望得到左上角顶点在EPSG:4326坐标系下的经度坐标。
x(transform(point_n($geometry, 1), 'EPSG:3857', 'EPSG:4326'))
# 网格图层的坐标系为EPSG:3857,希望得到左上角顶点在EPSG:4326坐标系下的纬度坐标。
y(transform(point_n($geometry, 1), 'EPSG:3857', 'EPSG:4326'))
在字段计算器中连接字符串使用 || 运算符。
x(transform(point_n($geometry, 1), 'EPSG:3857', 'EPSG:4326')) || ',' || y(transform(point_n($geometry, 1), 'EPSG:3857', 'EPSG:4326'))
# QGIS三色旗样式
用图片填充多边形感觉有点麻烦,针对三色旗可以试试 \(\textbf{Gradient}\) 样式。三色旗是旗帜或横幅的设计样式,始于十六世纪被视为共和、自由和革命的象征。最著名的三色旗当属法兰西共和国的国旗🇫🇷—[latex]\textbf{Le Tricolore}[/latex]。除了🇪🇪,还有🇷🇺🇩🇪🇬🇦🇾🇪🇱🇹🇱🇺🇳🇱🇷🇸🇦🇲🇧🇬🇧🇴🇭🇺🇸🇱等。
在QGIS中实现三色旗样式
在这里以法国为例,首先从GADM下载法国矢量面,使用 QGIS 打开 [latex]\textbf{gadm40_FRA_0.shp}[/latex]文件。
双击该Shapefile的图标,进入该图层的样式设置界面。顶部样式栏中选择 Single Symbol 样式类,在 [latex]\textbf{Symbol layer type}[/latex] 中选择 Gradient Fill 。
选择颜色带([latex]\textbf{Color ramp}[/latex]),进行颜色配置。设置 [latex]\textbf{Type}[/latex] 为 [latex]\textbf{Discrete}[/latex]。将 [latex]\textbf{Color 1}[/latex] 和 [latex]\textbf{Color 2}[/latex] 分别设置为第一个颜色和第三个颜色。如下图所示,设置三色旗样式一共需要六个 Gradient Stop ,第一个位置在[latex]0.0\%[/latex],颜色为蓝色;第二个位置在[latex]33.2\%[/latex],颜色与第一个一致;第三个位置在[latex]33.3\%[/latex],颜色为白色;第四个位置在[latex]66.5\%[/latex],颜色与第三个一致;第五个位置在[latex]66.6\%[/latex],颜色为红色;第六个位置在[latex]100.0\%[/latex],颜色与第五个一致。如此以来,色彩渐变将在[latex]0.1\%[/latex]的宽度中进行,其余位置均不进行色彩渐变。
# 输出透明背景图
点击 [latex]\textbf{Project -> New Print Layout}[/latex] 来新建 [latex]\textbf{Layout}[/latex] 以设置输出参数,与 ArcGIS 选择相同的背景色和透明色以实现透明背景不同,在 QGIS 中则需将 [latex]\textbf{Layout}[/latex] 的 Background 的不透明度设置成[latex]0[/latex],并取消勾选 [latex]\textbf{Map}[/latex] 的 Background 复选框。
参数设置成功后,点击 [latex]\textbf{Layout -> Export as Image}[/latex] 进行图片输出。
结果如下图所示:
# 绘制圆形地图
利用大比例尺地图来勾勒小比例尺地图中特定区域的细节,以突显地理要素的详实细节,是一种常见的空间可视化方法。选取矩形大比例尺地图显得较为庄重,而引入圆形地图则为整幅专题图增添俏皮趣味,本节主要介绍在 layout 中如何实现增添圆形地图。如下图所示:
具体步骤如下:
1.新增圆形要素
在左侧快捷工具栏中,依次点击 [latex]/textbf{Add Shape -> Add Ellipse}[/latex],在布局中勾勒出圆形要素。
2.新增地图要素
在左侧快捷工具栏中,点击 [latex]\textbf{Add Map}[/latex],在布局中勾勒出地图要素。
3.进入地图要素设置页面
在 [latex]\textbf{Clipping Settings}[/latex] 选项卡中,选中 [latex]\textbf{Clip to item}[/latex] 复选框,并在其下面的组合框中选中第一步新增的圆形要素。