python – 在SLD中添加一个新的过滤器

python – 在SLD中添加一个新的过滤器,第1张

概述我想更新我的sld.在我的sld中,没有过滤器,但我想使用 python应用过滤器,动态不是通过手动将值放在sld中.这是我的事. <StyledLayerDescriptor xmlns="http://www.opengis.net/sld" `xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/ 我想更新我的sld.在我的sld中,没有过滤器,但我想使用 python应用过滤器,动态不是通过手动将值放在sld中.这是我的事.

<StyledLayerDescriptor xmlns="http://www.opengis.net/sld" `xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd">`<namedLayer><name>Simple polygon with stroke</name><UserStyle><Title>SLD Cook Book: Simple polygon with stroke</Title><FeatureTypestyle><Rule><polygonSymbolizer><Fill><Cssparameter name="fill">#000080</Cssparameter></Fill><stroke><Cssparameter name="stroke">#FFFFFF</Cssparameter><Cssparameter name="stroke-wIDth">2</Cssparameter></stroke></polygonSymbolizer></Rule></FeatureTypestyle></UserStyle></namedLayer></StyledLayerDescriptor>

现在我想在我的表属性name_1上添加一个过滤器是否有任何方法可以在python中执行此 *** 作.新过滤器将位于Rule标记中,并位于FeatureTypestyle下.

解决方法 Python SLD

好吧,我使用python-sld包来创建SLD结构.

你可以在这里找到http://azavea.github.io/python-sld/项目.
我必须说文档并不详尽,所以很多时候你必须尝试错误来做你想做的事情.对于我来说,必须用新创建的SLD覆盖现有的SLD,我无法修改现有的SLD.

这样说,一旦你安装了包:

创建SLD结构

from sld import StyledLayerDescriptor,polygonSymbolizer,Filtermysld = StyledLayerDescriptor()nl = mysld.create_namedlayer('Simple polygon with stroke')ustyle = nl.create_userstyle()fts = ustyle.create_featuretypestyle()

第一条规则

fts.create_rule('First Rule',polygonSymbolizer)mysld.namedLayer.UserStyle.FeatureTypestyle.Rules[0].polygonSymbolizer.Fill.Cssparameters[0].Value = '#000080'mysld.namedLayer.UserStyle.FeatureTypestyle.Rules[0].polygonSymbolizer.stroke.Cssparameters[0].Value = '#FFFFFF'mysld.namedLayer.UserStyle.FeatureTypestyle.Rules[0].polygonSymbolizer.stroke.Cssparameters[1].Value = '2'

第二条规则和过滤器

fts.create_rule('Second Rule',polygonSymbolizer)fts.Rules[1].create_filter('name_1',comparator,value)

一个规则示例:

fts.Rules[1].create_filter('name_1','>=','0')

您可以在创建规则和过滤器添加变量时执行很多 *** 作,例如我对此进行编码:

fts.create_rule(str(int(round(e))) + '-' + str(int(round(v[i + 1]))),polygonSymbolizer)fts.Rules[i].create_filter(fIEld,str(e))

希望这有帮助,祝福.

总结

以上是内存溢出为你收集整理的python – 在SLD中添加一个新的过滤器全部内容,希望文章能够帮你解决python – 在SLD中添加一个新的过滤器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1197739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存