一个简单的python库,支持动态sld创建和操作。
python-sld的Python项目详细描述
python sld
用于读取、写入和操作sld文件的python库。
要求
xml解析和xml模式验证需要lxml库。这个 需求列在requirements.txt中,可以使用带有 此命令:
> sudo pip install -r requirements.txt
安装
> easy_install python-sld
OR
> pip install python-sld
用法
使用python sld创建sld文档就像实例化 StyledLayerDescriptor类对象。
from sld import StyledLayerDescriptor mysld = StyledLayerDescriptor()
您还可以通过将其作为参数传递到现有的SLD文档:
from sld import StyledLayerDescriptor mysld = StyledLayerDescriptor(‘mysld.sld’)
大多数元素的添加都是在父元素上执行的,因为它们是 为了保持一致性,与父节点相关:
nl = mysld.create_namedlayer() ustyle = nl.create_style()
两个类对象表示节点的集合,例如规则和 CSSPArameters公司。它们是其父类的属性(featureTypeStyle 以及分别填充/笔划/字体)。它们的行为就像python列表,而您 可以使用python列表模式访问它们的任何项:
fts = ustyle.create_featuretypestyle() rule1 = fts.Rules[0] print len(fts.Rules) fts.Rules[0] = rule1
filter对象是pythonic,当与“+”运算符组合时,它们 变成ogc:和过滤器。当与“”运算符组合时,它们将成为 或过滤器。
from sld import Filter
filter_1 = Filter(rule) # set filter 1 properties
filter_2 = Filter(rule) # set filter 2 properties
rule.Filter = filter_1 + filter_2
使用create_过滤器时,也可以从表达式构造过滤器 规则对象上的方法:
filter = rule.create_filter(‘population’, ‘>’, ‘100’)
实施
目前,python sld不支持完整的sld 规范。当前实现支持以下sld元素:
- StyledLayerDescriptor
- NamedLayer
- Name (of NamedLayer)
- UserStyle
- Title (of UserStyle and Rule)
- Abstract
- FeatureTypeStyle
- Rule
- ogc:Filter
- ogc:And
- ogc:Or
- ogc:PropertyIsNotEqualTo
- ogc:PropertyIsLessThan
- ogc:PropertyIsLessThanOrEqualTo
- ogc:PropertyIsEqualTo
- ogc:PropertyIsGreaterThanOrEqualTo
- ogc:PropertyIsGreaterThan
- ogc:PropertyIsLike
- ogc:PropertyName
- ogc:Literal
- MinScaleDenominator
- MaxScaleDenominator
- PointSymbolizer
- LineSymbolizer
- PolygonSymbolizer
- TextSymbolizer
- Mark
- Graphic
- Fill
- Stroke
- Font
- CssParameter
支架
如果您有任何问题或疑问,请访问python sld项目 github:https://github.com/azavea/python-sld/
贡献者
@[ewsterrenburg](https://github.com/ewsterrenburg)