использую данные OSM. как известно, в большинстве случаев улицы (дороги) в осме состоят из нескольких участков. столкнулся с проблемой их подписывания:
есть дорога, состоящая из двух участков разных классов - один highway=residential, второй highway=secondary. подпись дороги по правилу для residential почему-то появляется в том месте, где уже во всю тянется участок secondary, хотя линия residential под линией secondary не продолжается. желтые - secondary, белые - residential. размер подписи улицы Пушкина должен быть как у улицы Карла Маркса.
в правилах sld для обоих классов дорог используется опция группировки.
полные правила привел ниже под спойлерами.
кто-нибудь знает как это можно исправить? может быть я что-то с опциями наворотил?
p.s. как вариант можно соединить участки, но не хотелось бы.
Спойлер
<sld:FeatureTypeStyle>
<sld:Rule>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>highway</ogc:PropertyName>
<ogc:Literal>residential</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<sld:MinScaleDenominator>12500</sld:MinScaleDenominator>
<sld:MaxScaleDenominator>25000</sld:MaxScaleDenominator>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>name</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">DejaVu Sans</sld:CssParameter>
<sld:CssParameter name="font-size">9</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">normal</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:LinePlacement />
</sld:LabelPlacement>
<sld:Halo>
<sld:Radius>1.5</sld:Radius>
<sld:Fill>
<sld:CssParameter name="fill">#ffffff</sld:CssParameter>
</sld:Fill>
</sld:Halo>
<sld:Fill>
<sld:CssParameter name="fill">#000000</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="followLine">true</sld:VendorOption>
<sld:VendorOption name="group">yes</sld:VendorOption>
<sld:VendorOption name="spaceAround">0</sld:VendorOption>
<sld:VendorOption name="maxDisplacement">300</sld:VendorOption>
<sld:VendorOption name="repeat">750</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
<sld:Rule>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>highway</ogc:PropertyName>
<ogc:Literal>residential</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<sld:MinScaleDenominator>12500</sld:MinScaleDenominator>
<sld:MaxScaleDenominator>25000</sld:MaxScaleDenominator>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>name</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">DejaVu Sans</sld:CssParameter>
<sld:CssParameter name="font-size">9</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">normal</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:LinePlacement />
</sld:LabelPlacement>
<sld:Halo>
<sld:Radius>1.5</sld:Radius>
<sld:Fill>
<sld:CssParameter name="fill">#ffffff</sld:CssParameter>
</sld:Fill>
</sld:Halo>
<sld:Fill>
<sld:CssParameter name="fill">#000000</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="followLine">true</sld:VendorOption>
<sld:VendorOption name="group">yes</sld:VendorOption>
<sld:VendorOption name="spaceAround">0</sld:VendorOption>
<sld:VendorOption name="maxDisplacement">300</sld:VendorOption>
<sld:VendorOption name="repeat">750</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
Спойлер
<sld:FeatureTypeStyle>
<sld:Rule>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>highway</ogc:PropertyName>
<ogc:Literal>secondary</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<sld:MinScaleDenominator>12500</sld:MinScaleDenominator>
<sld:MaxScaleDenominator>25000</sld:MaxScaleDenominator>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>name</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">DejaVu Sans</sld:CssParameter>
<sld:CssParameter name="font-size">15</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">normal</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:LinePlacement />
</sld:LabelPlacement>
<sld:Halo>
<sld:Radius>1.5</sld:Radius>
<sld:Fill>
<sld:CssParameter name="fill">#ffffff</sld:CssParameter>
</sld:Fill>
</sld:Halo>
<sld:Fill>
<sld:CssParameter name="fill">#000000</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="followLine">true</sld:VendorOption>
<sld:VendorOption name="group">yes</sld:VendorOption>
<sld:VendorOption name="spaceAround">0</sld:VendorOption>
<sld:VendorOption name="maxDisplacement">400</sld:VendorOption>
<sld:VendorOption name="repeat">500</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>
<sld:Rule>
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>highway</ogc:PropertyName>
<ogc:Literal>secondary</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
<sld:MinScaleDenominator>12500</sld:MinScaleDenominator>
<sld:MaxScaleDenominator>25000</sld:MaxScaleDenominator>
<sld:TextSymbolizer>
<sld:Label>
<ogc:PropertyName>name</ogc:PropertyName>
</sld:Label>
<sld:Font>
<sld:CssParameter name="font-family">DejaVu Sans</sld:CssParameter>
<sld:CssParameter name="font-size">15</sld:CssParameter>
<sld:CssParameter name="font-style">normal</sld:CssParameter>
<sld:CssParameter name="font-weight">normal</sld:CssParameter>
</sld:Font>
<sld:LabelPlacement>
<sld:LinePlacement />
</sld:LabelPlacement>
<sld:Halo>
<sld:Radius>1.5</sld:Radius>
<sld:Fill>
<sld:CssParameter name="fill">#ffffff</sld:CssParameter>
</sld:Fill>
</sld:Halo>
<sld:Fill>
<sld:CssParameter name="fill">#000000</sld:CssParameter>
</sld:Fill>
<sld:VendorOption name="followLine">true</sld:VendorOption>
<sld:VendorOption name="group">yes</sld:VendorOption>
<sld:VendorOption name="spaceAround">0</sld:VendorOption>
<sld:VendorOption name="maxDisplacement">400</sld:VendorOption>
<sld:VendorOption name="repeat">500</sld:VendorOption>
</sld:TextSymbolizer>
</sld:Rule>
</sld:FeatureTypeStyle>