一个简单的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第三方库


热门话题
Docker&SeleniumJava:无法在Docker容器上运行的chrome浏览器中上载图像/文件   在python中运行java命令   Java垃圾收集器异常行为   java java是否根据底层操作系统执行字节码级优化?   java是否可以休眠自定义查询返回映射而不是列表?   java Spring引导RabbitMQ接收器Jackson反序列化到POJO   apache flex在ActionScript3中创建对象相等“HashMap”作为java HashMap   java如何在Eclipse集成中切换JProfiler启动器   缓存JSP页面结果的java最佳实践?   java集成jaxb绑定文件,使用CXF生成基于WSDL的客户端   java为什么在上传操作结束之前,客户端没有检测到HttpServletResponse的PrintWriter内容?   java在接口内创建类和在类内创建接口有什么用   java向文件写入错误Android Studio   java合并多个RealmList并对结果列表排序?   谷歌API视觉java。lang.NoSuchMethodError   java如何使用逗号分别存储每个值,然后将它们存储到单独的数组中?