简介:这份QGIS样式库合集专为各类GIS制图人员准备,从新手到资深用户都能快速找到合适的点、线、面要素符号方案,避免从零设计,有效解决地图视觉表现力不足的问题。资源包共含21个文件,以10个XML样式定义文件为核心,配合11个TXT说明文件,整体大小仅486KB,结构清晰便于查阅。样式内容十分多元,涵盖航空测绘专用符号、Mapbox Maki图标、手绘铅笔线、水流动态、铁蒺藜边界线、瑞典Lantmäteriet测绘标记等,既有行业标准样式,也有创意趣味符号。用户可在QGIS符号选择器中直接导入XML文件,应用于点线面图层,大幅提升制图效率,同时也可借助这些样式文件学习QGIS符号化配置与XML语法。目前已有328人学习下载,适用于科研制图、城市规划、地理教学等场景,能帮助快速产出规范美观的地图成果。 不知道大家有没有同感:同样是拿QGIS做图,有人做出来能直接投标用,有人做出来的图总透着一股“默认样式”的味道,颜色土、符号乱、图例也不对。问题大概率出在“qgis样式库”上。QGIS里有一套完整的样式机制,但很多人用了一两年还是靠手动一点点调符号和配色,完全没意识到这些参数可以打包成一套“样式库”,在下个项目里直接复用。这篇内容就围绕“各种样式的QGIS样式库”展开,讲清楚样式库是什么、怎么找现成的、怎么整理自己的、以及怎么把样式库真正落到一张能看的图上。无论你是刚装好QGIS的小白,还是已经在画专题图但觉得效率低的老手,都值得花几分钟把这套逻辑捋顺。
1. 样式库到底是什么,为什么值得专门维护一套
1.1 QGIS里的“样式”到底在管什么
很多刚上手的朋友会混淆“样式”和“符号”这两个概念。在QGIS里,单个符号只是样式的一小部分。一个完整的图层样式,通常包括:符号本身(点的形状、线的粗细、面的填充)、颜色和透明度、标注字体和偏移量、图层级别的混合模式,以及栅格图层的色带渲染方式。
更关键的是,矢量图层和栅格图层的样式完全是两套逻辑。矢量图层靠的是要素的几何类型和字段值,所以你可以用某一个字段驱动颜色深浅、符号大小,比如人口密度高的区域自动显示成深红色。栅格图层靠的是像元值,一个DEM高程栅格,你需要用色带去表达连续的高低变化,或者用重分类把高程切成几个区间。大家可以理解成:矢量图层像画矢量插画,一笔一画都有对象;栅格图层像给灰度照片上色,只能靠明暗映射做调整。
所以当你听到“样式库”这三个字,不要以为只是“好看的符号合集”。一套完整的样式库,应该覆盖点、线、面、标注、矢量分级配色、栅格色带这几个大类。如果做项目时只用默认样式,那你就是在浪费这套机制。
1.2 从单个样式到样式库:复用的价值
QGIS里单个图层调好后,可以右键图层,在属性面板里把样式另存为QML文件(.qml),也可以导出成SLD(.sld)。QML是QGIS原生格式,图层的一些高级效果、透明度、混合模式都能完整保留;SLD是OGC标准格式,兼容GeoServer等外部GIS服务。平时我个人优先存QML,只有在需要跨软件交换时才用SLD。
单个QML其实就很方便了,但更推荐的思路是建立“样式库”。这就像前端同学会建一套CSS动效样式库,把按钮、卡片、动效统一管理,改一套就能全局生效。QGIS的样式库也是同一个逻辑:你做了一个开发区规划图,里面绿地填充色、公园边界线、道路中轴线这些符号,单独存成一个“规划风”样式库。下次再用,直接在样式管理器里点几下,全部套进来。
实际我遇到过很多同学,辛辛苦苦调了一张图,项目结束就随手关掉,第二次又从头开始调一遍,特别磨人。你只要在第一次调好之后顺手导出QML,放进固定目录,长期积累下来就是一笔很值钱的资产。
2. 常用的QGIS样式库来源与选型思路
2.1 内置样式与官方资源插件
QGIS安装完成后,样式管理器里其实自带了一批基础符号和配色,很多人没注意到。打开“设置 → 样式管理器”,左侧能看到符号、渐变、色带,里面已经有一些默认模板。这些基础样式适合快速出草稿,但要说拿去印刷、出专题图,质感还是不太够。
更值得说的是QGIS官方社区的“资源分享”机制,对应的插件叫QGIS Resource Sharing。装好插件后,可以在线浏览社区仓库,里面有各种主题样式包,比如测绘符号、地形图样式、遥感专题配色,一键下载到本地。这个插件的意义在于,它把“找样式”从网上手动扒拉了下载,变成了“在QGIS内部直接浏览安装”,版本管理还相对清楚。对于刚入门的用户,我比较推荐先从这里开始,样式质量有基本保障,安装也基本不会踩坑。
2.2 GitHub上的开源样式库怎么挑
社区生态里其实有大量开源的QGIS样式库,GitHub上搜“qgis styles”就能看到一堆。但我建议不要因为项目名称好听就直接下载,选型看几个点。
第一看更新频率。GIS符号样式会跟着QGIS版本更新而变化,如果一个仓库几年没动了,里面很多符号在QGIS 3.x里可能加载报错,建议直接跳过。第二看场景匹配度。做地图制图的人可以多关注Carto、Natural Earth风格相关的样式包;做遥感影像专题的可以关注色带类样式,比如经典的cpt-city色带库;做道路和POI显示场景的,可以看OSM风格的样式。第三看有没有版权说明。符号库里的SVG图标、字体文件往往有各自的协议,商用前一定要确认清楚,别给自己埋雷。
如果是想找全球地名、国界、海洋配色这类偏底图风格的样式,Natural Earth项目提供了很多对应的配色方案,配合开源的矢量数据一起用,效果非常耐看。这类“成品级”样式库,比自己在调色板里一点点试色效率高很多。
2.3 建立属于自己的私有样式库
外部样式库再好,也替代不了你自己沉淀出来的风格。为什么?因为不同项目的配色习惯、符号语义、图例规范是有内部要求的,比如你单位做水利专题图,图里“水闸”必须用特定符号,那GitHub上再好的通用符号库也做不到。
我的建议是,在本地建一个固定目录,就叫qgis_style_lib,下面分几个子目录:points、lines、polygons、ramps、labels,每个文件命名时把用途和颜色风格写清楚,比如flood_gate_red.qml、river_blue_2pt.qml。命名规范越清晰,后面找起来越高效。
每次做完项目,如果发现某个图层样式被同事认可或者甲方满意,不要犹豫,打开图层属性,顺手把样式导出到对应目录。这个动作只需要十秒,但长期坚持下来,你的人人样式库会越来越厚。如果团队协作,我建议把整个qgis_style_lib目录丢进Git仓库,或者放到共享网盘里,所有人拉下来即用,避免“我的电脑上有,你那边没有”这种尴尬。
3. 安装、管理与复用:把样式库真正装进QGIS
3.1 用样式管理器批量导入样式
拿到一批QML文件后,怎么快速装进QGIS?路径是“设置 → 样式管理器”,在左下角有一个“导入/导出”按钮,点开后选“导入”,可以一次选择多个QML/SLD文件,导入完成后它们会出现在对应分类下。
导入之后,我强烈建议给样式打上标签。比如一个“公园绿地”面样式,可以打标签“绿地”“规划”“面”。以后在图层面板右键图层,符号化界面可以直接按标签筛选样式,不用在长长的列表里翻来翻去。样式管理器还支持“智能快捷方式”,你可以创建一个收藏夹,把当前项目最常用的十几个样式放进去,切换图层时速度非常快。
这里面有一个细节:导入SLD之后,QGIS虽然能显示,但很多QML特有的高级设置可能不兼容,尤其是要素符号的几何生成器这类高级用法。所以团队内部交换,优先使用QML,SLD只用来和外部软件交换。
3.2 用Resource Sharing订阅在线样式库
安装插件的方式不展开讲了,插件管理器里搜“QGIS Resource Sharing”,安装后菜单栏会多一个“资源分享”的入口。点击进去,你会看到几个仓库列表,选择需要的分类,点“安装”就会下载到本地。
注意一点,很多在线仓库有版本兼容性要求,安装前看一下说明,尽量选择支持你当前QGIS主要版本的样式包。插件里有些仓库更新比较慢,如果发现安装后样式管理器中看不到,回到“资源分享”面板,点“刷新”或者检查安装路径,一般就能解决。如果始终不显示,还有一个办法:直接找到插件下载到本地的目录,把里面的QML手动导入样式管理器,效果是一样的。
3.3 让团队里的样式库“开箱即用”
很多工作室里,新来的同事电脑上刚装完QGIS,打开项目,图层全报错,因为样式文件里的SVG符号路径、字体文件他们机器上没有。解决办法是把“样式库打包”作为项目交付的一部分。
具体操作很简单:把QML文件、外部SVG符号文件夹、使用的字体文件,全部放在同一个根目录下,然后整个目录打包。使用时,同事把这个目录解压到一个固定路径(比如D:\gis_assets),QGIS里的SVG符号路径设置成D:\gis_assets\svg,字体文件双击安装一下,样式就不会因为路径失效而崩掉。
更进一步,可以直接做一个项目模板(.qgs或.qgz)。在模板里把常用图层、样式、打印布局全部配好,新项目都从模板开启。这样“安装QGIS+加载模板+指定资源目录”三步走,团队新成员十分钟之内就能进入正常工作状态。
4. 实战:底图、栅格、矢量一起上,用样式库出完整成果
4.1 高德/腾讯/百度瓦片底图加载与样式叠加
实际出图时,一张图往往不只有自己的业务数据,还需要一个底图。QGIS里加载在线底图,主流做法是添加XYZ图层。在“图层 → 添加图层 → 添加XYZ图层”里填一个URL模板即可。以我之前常用的为例,高德可拼成类似:
https://webrd01.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}腾讯瓦片的通用拼接方式类似:
https://rt0.map.gtimg.com/tile?z={z}&x={x}&y={y}&styleid=3百度地图也能通过XYZ方式加载,例如:
https://maponline0.bdimg.com/tile/?qt=vtile&x={x}&y={y}&z={z}&styles=pl&scaler=1&udt=20200101有一点必须提醒:高德和腾讯的瓦片是GCJ02坐标,百度的瓦片是BD09坐标,而QGIS工程通常默认用WGS84,所以直接叠加会有明显偏移。如果只是“看一眼图”,问题不大;如果要和业务数据精确套合,请先把业务数据转换到对应坐标系,或者使用专门处理偏移的工具。建议大家把瓦片URL当成“样式库”的一部分保存起来,新建连接后给它取个清晰的名字,比如“高德路网-底图”,要用的时间直接选,不用每次重新填URL。
瓦片底图本身就是“别人做好的样式”,加载后在图层样式里不用调太多。但它会挤压业务图层的视觉空间,所以我个人习惯会把底图透明度调到70%~85%,或者用“混合模式 → 变暗”让底图底色退后,让自己的要素更突出。这一步在打印出图时尤其重要。
4.2 DEM栅格配色与栅格重分类
拿到DEM数据,默认加载出来通常是一张灰不拉几的图,这时候就需要给它套栅格样式。右键图层 → 属性 → 符号化,渲染类型选“单波段假彩色”,配色方案可以选内置的“光谱”,也可以从你自己的色带库里选。
这里重点说一下“栅格重分类”配合样式的场景。很多人做高程分级图,希望把高程切成几段,比如0~200、200~500、500以上,然后每一段赋一个颜色。直接拉伸色带做不到清晰的分类效果,需要先对栅格做重分类。QGIS里最简单的做法是用“栅格计算器”,写条件表达式把数值映射成新值;进阶一点可以装GRASS工具集,用r.reclass按规则表重分类。重分类后会生成一个新栅格,这时候再对新栅格做“单波段假彩色”的分段配色,就非常干净。
有朋友会问,矢量分级和栅格分级的样式逻辑有没有共通点?有,都是“按值匹配颜色”。但矢量靠字段,栅格靠像元值,操作入口完全不同。把这两个方向搞明白,你就能处理绝大多数图层的样式问题。重分类完成后,别忘了对新栅格另存一份QML,否则下次重新加载又得调一遍。
4.3 矢量图层用字段驱动样式,做出真正能用的专题图
矢量专题图是QGIS样式库最直观的应用场景。比如我手头有一个镇街人口面层,我希望颜色能反映人口数量高低。操作路径是:右键图层 → 属性 → 符号化,选“分级”,然后把“值”选成人口字段,下方选择一种配色方案。关键点在于分级方法的选择。
QGIS提供了等间距、分位数、自然间断点(Jenks)等模式。等间距适合数值分布均匀的数据;分位数适合想让每一级数量相近的场景;自然间断点会自动找数据里的聚类边界,做人口分布、经济指标这类数据时视觉效果最好。我第一次用的时候,三种模式各生成一遍,放图例上一对比,自然间断点的区分度明显更好。选完分级后,还可以在“图层属性 → 图例”里把每一级的文字改得自然一点,比如“低密度/中低密度/中密度/高密度/极高密度”,比一堆数字区间更易读。
这套东西做完后,如果还想复用,可以把“分级方式和配色方案”单独保存成样式文件。以后换别的区域、换别的指标,加载样式,换一下字段,图就能出来,省掉再调一遍的时间。
4.4 导出成果:shp文件和地图布局
图层样式搞定后,经常需要把数据分享给同事或者甲方,这时候就涉及导出。QGIS导出shp文件最简单的方法,就是右键图层 → 导出 → “要素另存为”,格式选“ESRI Shapefile”,输出文件名里不要带中文,编码记得选UTF-8,不然到别人电脑上会乱码。在“选项”里有一个“保存样式”的勾选项,如果你勾选,QGIS会同时生成一个QML文件,这样对方把shp和QML放在同一个目录,打开图层时右键属性,样式会自动加载。这个细节很多人忽略,但对协作太重要了。
如果要做成图片或者PDF提交,就要用“打印布局”。新建一个打印布局,添加一张地图,把范围拖到目标区域,然后地图图层的样式会跟着图层面板的显示效果走,所以你在主画布看到什么样,布局里基本就是什么样。导出图片时分辨率选300DPI,PDF要勾选“始终作为矢量导出”,尤其是你希望线条和文字保持清晰度的时候。底图瓦片在布局里偶尔会显示不全,出现灰块时右键地图区域选择“刷新渲染”,一般能解决。
5. 样式库实战中的坑:问题与排查
5.1 样式加载后符号错乱、不显示
最常见的情况是,从一个地方下载的样式库在别人的电脑上显示正常,到自己这里就炸了。先看QGIS版本,QGIS 2.x时代的QML不能直接用在QGIS 3.x里,会缺失符号甚至报错。解决方案是让提供方给你3.x的版本,或者自己用样式管理器重新导入再导出一次。再看字体,标注样式里引用了你电脑不存在的字体,符号就会变成方块,安装对应字体即可。还要注意外部SVG符号引用的绝对路径,换机器后路径失效,需要在“设置 → 选项 → 系统 → SVG路径”里重新指定。
5.2 颜色总感觉不对,打印偏色
屏幕上看偏红,导出PDF偏暗,先检查QGIS的颜色管理设置。QGIS 3.x默认使用sRGB,如果显示器是广色域,屏幕看起来会偏鲜艳。更稳妥的做法是,把导出DPI固定成300,不要用屏幕截图代替出图。还有一类问题是样式里使用了混合模式或全局透明度,叠加在深色底图上之后,实际颜色和你在面板里看到的色块完全不一样。排查时把所有图层透明度暂时恢复成100%,逐个开关图层,找到那个“调味”的图层再微调。
5.3 瓦片底图不显示、偏移、刷新不出来
底图不显示,先拿浏览器直接访问瓦片URL试试,能显示说明URL还有效;如果URL失效,就需要去网上找新的模板,或者用开发者工具抓取当前网页实际请求的瓦片地址。如果浏览器能显示但QGIS里是空白的,检查一下URL里的占位符是不是{x}、{y}、{z},大小写或变量名不对,QGIS无法替换,自然空白。偏移问题就是前面讲的坐标系不一致,高德、腾讯、百度都是加密坐标系,处理方式是对业务数据做转换或使用对应坐标系的工程模板,不能硬叠。
5.4 样式库换电脑就失效
这个问题本质上是“样式资源不完整”。一个完整样式文件背后可能有SVG符号、字体、外部色带文件。只拷贝QML给同事,等于只给了衣服没给配饰。请务必打包时把QML、SVG、字体放在一起,并告诉对方“整个文件夹不要拆分”。团队内部如果有统一的资源盘,可以把路径约定好,从源头避免这个问题。
5.5 数据更新后样式突然“负优化”
项目后期换了新数据,图层样式恢复了默认,大概率是字段名变了。数据驱动的符号化、分级配色都绑定的是字段名,字段改个名,QGIS找不到,就退回默认样式。解决办法是,修改字段名后到符号化界面重新选择对应字段;如果不想让字段名被随意改,可以给图层字段增加别名,或者在项目里锁定图层字段属性。
从我自己的经验来说,样式库这件事最怕“临时找”。每次新项目开始前,先花五分钟打开样式管理器,把这次可能用到的样式拖进收藏夹或者临时分组,画图的时候随取随用,比画到一半再到处找样式高效太多了。我自己的习惯是,每周花十分钟把本周项目里出现的好样式导出存档,写上标签和用途说明,长期下来,这套样式库就成了我出图最可靠的伙伴。
本文还有配套的精品资源,点击获取