Здравствуйте.
Прошу ваших подсказок при составлении стиля (SLD или CSS — неважно, важен алгоритм) при отображении полигонального слоя с подписями.
У меня есть полигональный слой. Он состоит из полигонов, которые нужно отображать на мелких масштабах и полигонов, которые нужно отобразить на крупных масштабах.
Вот так выглядит полигон, предназначенный для отображения на мелких масштабах:
А при переходе на более крупные масштабы полигон «распадается» на несколько мелких, составляющих первый.
Собственно с отображением полигонов проблем нет, всё легко решается с помощью MinScaleDenominator и MaxScaleDenominator.
Проблема с подписью. Задача в том, что сам мелкомасштабный полигон на крупных масштабах отображаться не должен, но должна отображаться его подпись. Вот так:
Но у меня получается только так...
Geoserver: Полигоны и их подписи
-
- Активный участник
- Сообщения: 153
- Зарегистрирован: 02 авг 2014, 18:29
- Репутация: 24
- Откуда: Москва
Geoserver: Полигоны и их подписи
Последний раз редактировалось Аминодов-Борисов 05 июл 2016, 15:20, всего редактировалось 1 раз.
-
- Активный участник
- Сообщения: 153
- Зарегистрирован: 02 авг 2014, 18:29
- Репутация: 24
- Откуда: Москва
Re: Подписи полигонов
...Но у меня получается только так:
На данный момент стиль выглядит так:
Подписи мелкомасштабных полигонов я здесь вынес в отдельный FeatureTypeStyle. Рассуждая примерно так: если я размещу некий FeatureTypeStyle в конце стиля, то он будет отрисовываться в последний момент и окажется на самом верху. Но увы, это не получается.
Все полигоны находятся в одном хранилище.
На данный момент стиль выглядит так:
Код: Выделить всё
<?xml version="1.0" encoding="UTF-8"?>
<StyledLayerDescriptor version="1.0.0"
xsi:schemaLocation="http://www.opengis.net/sld StyledLayerDescriptor.xsd"
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">
<NamedLayer>
<Name>Small scale polygons</Name>
<UserStyle>
<FeatureTypeStyle>
<Name>Small scale polygons</Name>
<Rule>
<Name>Small scale polygons</Name>
<Description>
<Title>Small scale polygons</Title>
</Description>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>type</ogc:PropertyName>
<ogc:Literal>smallscale</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<MinScaleDenominator>100000</MinScaleDenominator>
<MaxScaleDenominator>1000000</MaxScaleDenominator>
<PolygonSymbolizer>
<Stroke>
<CssParameter name="stroke">#ff0000</CssParameter>
<CssParameter name="stroke-width">2</CssParameter>
</Stroke>
<Fill>
<CssParameter name="fill">#ff0000</CssParameter>
<CssParameter name="fill-opacity">0.1</CssParameter>
</Fill>
</PolygonSymbolizer>
<TextSymbolizer>
<Label>
<ogc:PropertyName>name</ogc:PropertyName>
</Label>
<Halo>
<Radius>2</Radius>
<Fill>
<CssParameter name="fill">#FFFFFF</CssParameter>
</Fill>
</Halo>
<Font>
<CssParameter name="font-family">Arial</CssParameter>
<CssParameter name="font-size">12</CssParameter>
<CssParameter name="font-style">normal</CssParameter>
<CssParameter name="font-weight">bold</CssParameter>
</Font>
<LabelPlacement>
<PointPlacement>
<AnchorPoint>
<AnchorPointX>0.5</AnchorPointX>
<AnchorPointY>0.5</AnchorPointY>
</AnchorPoint>
</PointPlacement>
</LabelPlacement>
<Fill>
<CssParameter name="fill">#ff0000</CssParameter>
</Fill>
</TextSymbolizer>
</Rule>
</FeatureTypeStyle>
<FeatureTypeStyle>
<Rule>
<Name>Large scale polygons</Name>
<Description>
<Title>Large scale polygons</Title>
</Description>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>type</ogc:PropertyName>
<ogc:Literal>largescale</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<MinScaleDenominator>1</MinScaleDenominator>
<MaxScaleDenominator>100000</MaxScaleDenominator>
<PolygonSymbolizer>
<Stroke>
<CssParameter name="stroke">#ff00ff</CssParameter>
<CssParameter name="stroke-width">1</CssParameter>
</Stroke>
<Fill>
<CssParameter name="fill">#ff00ff</CssParameter>
<CssParameter name="fill-opacity">0.1</CssParameter>
</Fill>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
<FeatureTypeStyle>
<Rule>
<Name>Small scale polygons</Name>
<Description>
<Title>Small scale polygons</Title>
</Description>
<ogc:Filter xmlns:ogc="http://www.opengis.net/ogc">
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>type</ogc:PropertyName>
<ogc:Literal>smallscale</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<MinScaleDenominator>1</MinScaleDenominator>
<MaxScaleDenominator>100000</MaxScaleDenominator>
<TextSymbolizer>
<Label>
<ogc:PropertyName>name</ogc:PropertyName>
</Label>
<Halo>
<Radius>2</Radius>
<Fill>
<CssParameter name="fill">#FFFFFF</CssParameter>
</Fill>
</Halo>
<Font>
<CssParameter name="font-family">Arial</CssParameter>
<CssParameter name="font-size">16</CssParameter>
<CssParameter name="font-weight">bold</CssParameter>
</Font>
<LabelPlacement>
<PointPlacement>
<AnchorPoint>
<AnchorPointX>0.5</AnchorPointX>
<AnchorPointY>0.5</AnchorPointY>
</AnchorPoint>
</PointPlacement>
</LabelPlacement>
<Fill>
<CssParameter name="fill">#ff0000</CssParameter>
</Fill>
</TextSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
Все полигоны находятся в одном хранилище.
-
- Гуру
- Сообщения: 838
- Зарегистрирован: 10 дек 2009, 23:24
- Репутация: 169
- Ваше звание: старик-гисовик
- Откуда: Москва
- Контактная информация:
-
- Активный участник
- Сообщения: 153
- Зарегистрирован: 02 авг 2014, 18:29
- Репутация: 24
- Откуда: Москва
Re: Geoserver: Полигоны и их подписи
@Andrey Zhukov
Ага, спасибо. Перевёл стиль в CSS — SLD начинает потихоньку надоедать — и добавил куда надо label-z-order: 0. Помогло.
[ Сообщение с мобильного устройства ]
Ага, спасибо. Перевёл стиль в CSS — SLD начинает потихоньку надоедать — и добавил куда надо label-z-order: 0. Помогло.
[ Сообщение с мобильного устройства ]
-
- Активный участник
- Сообщения: 153
- Зарегистрирован: 02 авг 2014, 18:29
- Репутация: 24
- Откуда: Москва
Re: Geoserver: Полигоны и их подписи
...Хотя, наверное, стоит попробовать не 0, а -1...
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость