本文主要是介绍QGIS批量导出sld,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
作为一名gis工程师,经常会发布一些地图服务,尤其开源的geoserver经常会被用到,我们在发布一些矢量图层时候往往需要配置对应的sytle,通常都是通过在qgis一个一个图层配好样式一个一个导出sld再到geoserver发布,数量少还能接受,数量多的话就比较麻烦,所以需要研究批量导出的方法。
经过搜索查证没有直接导出sld的工具,相关插件Bulk vector export as SLD and GeoJson有导出sld的功能,但是和导出geojson捆绑在一起而且导出的sld名称为图层id名称不对。
经过分析qgispython控制台通过调用pyqgisapi的qgis.core.QgsMapLayer.saveSldStyle()函数可实现图层导出sld,在结合python遍历功能即可实现qgis工程批量导出sld样式文件。
相关代码如下:
#引用需要的模块
from qgis.core import *
import os
#导出的位置
nsldPath = r'C:\Users\Administrator\Desktop\sld'
#获取qgis图层
layers = qgis.utils.iface.mapCanvas().layers()
#遍历图层
for layer in reversed(layers):#获取图层名称nm = str(layer.name())#导出的sld路径nsld = nsldPath +'\\' + nm + '.sld'#导出的sldqgis.core.QgsMapLayer.saveSldStyle(layer,nsld)
其实通过qgispython控制台可以实现很多qgis工具箱里没有的功能,也能实现很多批量操作的功能来提高我们的工作效率,这就需要我们慢慢发现经常查看帮助文档和不断研究了。
Qgispython控制台帮助(3.22):
https://docs.qgis.org/3.22/zh-Hans/docs/user_manual/plugins/python_console.html
pyqgisapi帮助(3.22):
https://qgis.org/pyqgis/3.22/
pyqgis手册(3.22):
https://docs.qgis.org/3.22/en/docs/pyqgis_developer_cookbook/index.html
这篇关于QGIS批量导出sld的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!