在SLD中添加新筛选器

2024-09-27 23:17:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我想更新我的sld。在我的sld中,没有过滤器,但我希望使用python应用过滤器,而不是手动将值放入sld中。这是我的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>

现在我想在我的表属性名上添加一个过滤器,python中有什么方法可以做到这一点吗。新筛选器将位于规则标记中,并位于FeatureTypeStyle下。在


Tags: nameogcopengishttp过滤器netstrokewww
1条回答
网友
1楼 · 发布于 2024-09-27 23:17:54

Python SLD

嗯,我使用pythonsld包以普通方式创建sld结构。在

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

安装好软件包后,说:

创建SLD结构

from sld import StyledLayerDescriptor, PolygonSymbolizer, Filter

mysld = StyledLayerDescriptor()
nl = mysld.create_namedlayer('Simple polygon with stroke')
ustyle = nl.create_userstyle()
fts = ustyle.create_featuretypestyle()

第一条规则

^{pr2}$

第二个规则和过滤器

^{3}$

规则示例:

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))

希望这个帮助,祝福。在

相关问题 更多 >

    热门问题