Java教程

使用QGIS制作点密度专题图

本文主要是介绍使用QGIS制作点密度专题图,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

点密度图(Dot Density Map)是专题地图的一种,是用一定大小的、形状相同的点表示分散分布现象的分布范围、数量特征和分布密度的制图方法,又叫点值法或者点法,广泛应用于表示人口、农业、畜牧业等专题图上。点密度地图上,点的疏密即可看出现象的集中或分散程度,点的个数越多越密集,反映数据所表示的事物或现象在该区域的密度或浓度越大。

 

本文使用QGIS演示点密度地图的制作过程,最终效果如下:

 

 

 01 下载示范数据并加载

 

本文的示范数据为江苏省行政区划,来源于网络,下载地址如下:

 

链接:https://pan.baidu.com/s/1qhkzmCgzrScTC_ubeYlLCA

提取码:v19m

 

启动QGIS,点击工具栏的按钮,打开数据源管理器对话框。

 

 

在数据源管理器对话框中,依次点击【矢量】->【文件】单选按钮->矢量数据集右侧的【…】按钮,找到下载的jiangsu.gpkg文件,点击下方的【添加】按钮,在弹出的对话框中,选中“区县-面”、“市级-面”、“省级-面”,点击【OK】,将三个图层添加到地图窗口。

 

 

返回QGIS主窗口,可以看到打开的三个面图层:“区县-面”、“市级-面”和“省级-面”。先取消勾选“市级-面”和“省级-面”暂时关闭这两个图层。

 

选中“区县-面”图层,点击图层面板上方的按钮,在窗口右侧打开图层样式面板,选中“简单填充”,设置如下参数:

 

  • 填充颜色:白色;

  • 填充方式:实线;

  • 描边颜色:#8f8989。

 

 

至此,我们将示范数据加载到QGIS,并做了基本的符号化设置,为后续点密度地图的制作做好了准备。

 02 生成点密度图层

 

右键点击“区县-面”->【打开属性表】,打开属性表窗口。观察区县的属性,可以看到“pop_wan”字段,表示模拟的、以万人为单位的人口数量,该字段为生成点密度图的核心数据。(注意,此数据为测试数据,与官方发布的人口统计数据无关。)

 

 

关闭属性表窗口,点击菜单【矢量】->【研究工具】->【多边形内的随机点】,打开参数设置对话框。

 

 

说明:

【多边形内的随机点】算法对输入图层中的每个多边形生成指定数量的点,例如,指定输入图层为江苏省的区县面,区县内点的数量指定由其人口数确定,则算法将根据人口数量多少在每个区县内生成随机点,这些点随机分布于多边形内,设置点之间距离参数可以控制其最小相距距离。

 

在“多边形内的随机点”参数对话框内,输入多边形:“区县-面”,点击“每个要素的点数目”右侧的按钮,从下拉菜单选择【编辑】,打开表达式对话框,设置表达式控制每个区县内生成的点数。

 

 

在弹出的“表达式字符串构建器”对话框中,展开函数区域的【字段和值】节点,双击“pop_wan”字段,将它添加到表达式区域,表示地图上每一个点代表10000人。点击【OK】按钮返回。

 

 

设置“多边形内的随机点”其他参数:

 

  • 点之间的最小距离:100米。该参数表示如果当前面要素的100米距离范围内已经有一个点,则不会在添加点。

  • 点之间全局最小距离:50米。该参数表示全局范围内点与点之间的最小距离为50米。

 

 

说明:

“点之间的最小距离”和“点之间全局最小距离”两个参数之间的区别在于:前者仅考虑同一个多边形内的点,后者考虑所有已经生成的点。如果将“点之间全局的最小距离”设置为等于或大于(局部)“点之间的最小距离”,则后者无效。

 

点击【运行】按钮,QGIS根据设置的参数生成随机点。根据生成点的总数量不同,算法所需要的时间也不同。

 

 

算法运行结束后,可以在QGIS的图层面板看到新生成临时图层:“多边形内的随机点”,该图层自动显示到地图窗口中。

 

 

 03 点密度图层符号化

 

接下来我们对生成的随机点做一些样式设置,以达到开篇所显示的地图效果。

 

首先,把存储于内存的临时图层永久化保存到硬盘。右键点击“多边形内的随机点”->【永久化】,在弹出的对话框中设置保存的路径,图层名:“人口密度(1点=1万人)”。点击【OK】完成临时点图层的永久化。

 

 

然后,开始设置点的样式。选择“人口密度(1点=1万人)”图层,在图层样式面板中,选中“简单标记”,设置如下参数:

 

  • 大小:0.45毫米;

  • 填充颜色:#820000;

  • 描边颜色:任意颜色;

  • 描边样式:不显示画笔;

  • 符号:圆形。

 

得到符号化效果如下:

 

 

接下来,设置行政区划背景图层的样式。

 

在图层面板取消勾选“区县-面”使其隐藏,勾选“市级-面”,将市级图层显示出来。

 

 

右键点击“区县-面”->【样式】->【复制样式】->【所有样式类别】,将“区县-面”图层的样式复制到剪贴板。

 

类似步骤,右键点击“市级-面”->【样式】->【粘贴样式】->【所有样式类别】,将“县级-面”图层的样式复制到“市级-面”图层。

 

 

保持“市级-面”图层的选中状态,点击图层样式面板的标签,切换到标注设置页面。设置参数如下:

  • 标注方式:单一标注;

  • 值:NAME;

  • 在文本 页面设置字体和颜色如下:

  • 字体:选择一个合适的字体,比如本文选择“华光超粗黑_CNKI”;

  • 颜色:#5c5c5c;

  • 在轮廓 页面设置文本的缓冲区:

  • 勾选“绘制文本缓冲区”;

  • 颜色:#d4d4d4;

 

以上设置完成后,得到的市级行政区划标注效果如下:

 

 

为了突出省级界线,设置省级行政区划背景。拖动“省级-面”图层将其置于“市级-面”图层之上,并勾选显示该图层。

 

 

在图层面板选中“省级-面”图层,右侧的图层样式面板设置如下:

 

  • 渲染方式:反转多边形;

  • 填充的子渲染方式:形状渐层填满;

  • 渐变色:双色;

  • 颜色1:#6b6b6b;

  • 颜色2:#ffffff,透明度:50%;

  • 阴影样式:选择“设置距离”,距离保持默认的5毫米。

 

完成省级边界设置后,效果如下:

 

 

最后,从互联网地图中选择一个合适的底图,例如本文选用MapTiler:确保安装MapTiler插件,从浏览器面板展开MapTiler节点,双击“Basic”将其添加到地图窗口。关闭MapTiler不需要的图层后,最终的效果如下:

 

 

 04 常见点密度地图实现的讨论

 

在ArcGIS、超图的iDeskpro等其他GIS中,点密度图的实现是通过符号化系统,因此点密度图作为图层数据的符号表达,以图层属性的形式与数据关联。

 

与此不同的是,QGIS直接根据数据采用随机点算法生成点图层(物理存在的数据),然后对点图层进行符号化表达,所以在制作方式上显得略微繁琐。另外,有些GIS软件提供了均匀布点的选项,比如超图的iDeskpro,但QGIS针对多边形范围目前暂时仅提供生成随机布点算法,所以具有一定的局限性。

 

 


推荐阅读:

使用QGIS实现城市空气质量指数(AQI)数据可视化

QGIS 3.10 制图手把手教程

版权声明

 

本文欢迎转载,转载时请注明出处。

 

这篇关于使用QGIS制作点密度专题图的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!