一个简单的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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Android Studio Java将输入存储在一个文本文件中,所有输入在一行中加载后显示在屏幕上   在我的Java应用程序中记录日志配置   java在将socket从Localhost构建到google时出错。通用域名格式   在java中通过SOAP发送附件   java Tomcat的JspWriter编码不正确   java应用程序在截击StringRequest时不断崩溃   java需要一个保持顺序并具有“顺序敏感”equals/hashCode的映射   Java框架地址栏元素   java如何从特定范围生成4个不重复的数字?   googleappenginejava。安全AccessControlException:拒绝访问(java.io.FilePermission)   加载游戏时java Fabric入口点异常崩溃   java Python我如何读入和读出,以便其他读者可以阅读它以便进一步购买?