Geotools - 如何正确设置几何集合几何图形的样式

问题描述 投票:0回答:1

我正在使用 StreamingRenderer 在地图上绘制一些几何图形,该 StreamingRenderer 使用两种样式之一:

//line:
LineSymbolizer lineSym = sf.createLineSymbolizer(stroke, null);
//for polygons
PolygonSymbolizer polySym = sf.createPolygonSymbolizer(stroke, fill, null);

这对于线串、多线串和多边形效果很好。

但是对于 GeometryCollection,如果我使用的是 Polygon 样式,但集合是 LineStrings,则图像将变为“填充”,反之亦然,对于 Line 样式,则多边形集合将变为非填充。我考虑过将 GeometryCollection 拆分为单独的多边形,但这也有问题,因为这样标签可能无法正确放置。

是否有一种方法可以正确创建适用于 GeometryCollection 内的内部几何图形的样式,以便多边形和线条在独立或在 GeometryCollection 内时具有相同的样式?

示例:

MULTILINESTRING((100 10, 130 15, 120 12, 100 10))
GEOMETRYCOLLECTION(MULTILINESTRING((100 10, 130 15, 120 12, 100 10)))
GEOMETRYCOLLECTION(POLYGON((100 10, 130 15, 120 12, 100 10)))
POLYGON((100 10, 130 15, 120 12, 100 10
java geotools
1个回答
0
投票

简单地说,您所看到的是“GeometryCollection”的正确行为,SLD 规范表示,如果您将多边形符号器应用于线串,那么它应该连接末端并填充生成的多边形。

有多种方法可以尝试解决此问题,您可以将集合分成 3 个不同的集合并应用正确的样式,或者创建单独的几何列或应用基于

geometryType
函数的过滤器来指定不同的规则。 GeoServer 文档中有一个页面提供了更多详细信息。

请参阅

此答案以获取更多讨论。

© www.soinside.com 2019 - 2024. All rights reserved.