populated_places.sld 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <sld:StyledLayerDescriptor xmlns="http://www.opengis.net/sld"
  3. xmlns:sld="http://www.opengis.net/sld"
  4. xmlns:ogc="http://www.opengis.net/ogc"
  5. xmlns:gml="http://www.opengis.net/gml"
  6. version="1.0.0">
  7. <sld:NamedLayer>
  8. <!-- style applies to named layer only -->
  9. <sld:Name>ne:populated_places</sld:Name>
  10. <sld:UserStyle>
  11. <sld:Name>populated_places</sld:Name>
  12. <sld:Title>Populated Places</sld:Title>
  13. <sld:Abstract>Dynamic presentation of populated places with level of detail depending on scale. Dymanic styling is used to determine mark symbol shown based on feature classification. Label is introduced at lower scales.</sld:Abstract>
  14. <sld:FeatureTypeStyle>
  15. <sld:Name>places</sld:Name>
  16. <sld:Rule>
  17. <ogc:Filter>
  18. <ogc:PropertyIsLessThan>
  19. <ogc:PropertyName>min_zoom</ogc:PropertyName>
  20. <ogc:Literal>2</ogc:Literal>
  21. </ogc:PropertyIsLessThan>
  22. </ogc:Filter>
  23. <sld:MinScaleDenominator>14.0E7</sld:MinScaleDenominator>
  24. <sld:PointSymbolizer>
  25. <sld:Graphic>
  26. <sld:Mark>
  27. <sld:WellKnownName>circle</sld:WellKnownName>
  28. <sld:Fill>
  29. <CssParameter name="fill">#777777</CssParameter>
  30. </sld:Fill>
  31. </sld:Mark>
  32. <sld:Size>3</sld:Size>
  33. </sld:Graphic>
  34. </sld:PointSymbolizer>
  35. </sld:Rule>
  36. <!-- dynamic symbolization using rules -->
  37. <sld:Rule>
  38. <ogc:Filter>
  39. <ogc:PropertyIsLessThan>
  40. <ogc:PropertyName>min_zoom</ogc:PropertyName>
  41. <ogc:Literal>3</ogc:Literal>
  42. </ogc:PropertyIsLessThan>
  43. </ogc:Filter>
  44. <sld:MinScaleDenominator>7.0E7</sld:MinScaleDenominator>
  45. <sld:MaxScaleDenominator>14.0E7</sld:MaxScaleDenominator>
  46. <sld:PointSymbolizer>
  47. <sld:Graphic>
  48. <sld:Mark>
  49. <sld:WellKnownName>circle</sld:WellKnownName>
  50. <sld:Fill>
  51. <CssParameter name="fill">#777777</CssParameter>
  52. </sld:Fill>
  53. </sld:Mark>
  54. <sld:Size>4</sld:Size>
  55. </sld:Graphic>
  56. </sld:PointSymbolizer>
  57. </sld:Rule>
  58. <sld:Rule>
  59. <ogc:Filter>
  60. <ogc:And>
  61. <ogc:PropertyIsLessThan>
  62. <ogc:PropertyName>min_zoom</ogc:PropertyName>
  63. <ogc:Literal>3</ogc:Literal>
  64. </ogc:PropertyIsLessThan>
  65. <ogc:PropertyIsEqualTo>
  66. <ogc:PropertyName>featurecla</ogc:PropertyName>
  67. <ogc:Literal>Admin-0</ogc:Literal>
  68. </ogc:PropertyIsEqualTo>
  69. </ogc:And>
  70. </ogc:Filter>
  71. <sld:MinScaleDenominator>7.0E7</sld:MinScaleDenominator>
  72. <sld:MaxScaleDenominator>14.0E7</sld:MaxScaleDenominator>
  73. <sld:PointSymbolizer>
  74. <sld:Graphic>
  75. <sld:Mark>
  76. <sld:WellKnownName>star</sld:WellKnownName>
  77. <sld:Fill>
  78. <CssParameter name="fill">#777777</CssParameter>
  79. </sld:Fill>
  80. </sld:Mark>
  81. <sld:Size>5</sld:Size>
  82. </sld:Graphic>
  83. </sld:PointSymbolizer>
  84. </sld:Rule>
  85. <!-- dynamic symbolization using expression -->
  86. <sld:Rule>
  87. <ogc:Filter>
  88. <ogc:PropertyIsLessThan>
  89. <ogc:PropertyName>min_zoom</ogc:PropertyName>
  90. <ogc:Literal>5</ogc:Literal>
  91. </ogc:PropertyIsLessThan>
  92. </ogc:Filter>
  93. <sld:MinScaleDenominator>3.5E7</sld:MinScaleDenominator>
  94. <sld:MaxScaleDenominator>7.0E7</sld:MaxScaleDenominator>
  95. <sld:PointSymbolizer>
  96. <sld:Graphic>
  97. <sld:Mark>
  98. <sld:WellKnownName>${if_then_else(equalTo(featurecla,'Admin-0 capital'),'star','circle')}</sld:WellKnownName>
  99. <sld:Fill>
  100. <CssParameter name="fill">#999999</CssParameter>
  101. </sld:Fill>
  102. <sld:Stroke>
  103. <sld:CssParameter name="stroke">#666666</sld:CssParameter>
  104. <sld:CssParameter name="stroke-width">1.0</sld:CssParameter>
  105. </sld:Stroke>
  106. </sld:Mark>
  107. <sld:Size>
  108. <ogc:Function name="if_then_else">
  109. <ogc:Function name="equalTo">
  110. <ogc:PropertyName>featurecla</ogc:PropertyName>
  111. <ogc:Literal>Admin-0 capital</ogc:Literal>
  112. </ogc:Function>
  113. <ogc:Literal>7</ogc:Literal>
  114. <ogc:Literal>5</ogc:Literal>
  115. </ogc:Function>
  116. </sld:Size>
  117. </sld:Graphic>
  118. <sld:VendorOption name="labelObstacle">true</sld:VendorOption>
  119. </sld:PointSymbolizer>
  120. <sld:TextSymbolizer>
  121. <sld:Label>
  122. <ogc:PropertyName>name</ogc:PropertyName>
  123. </sld:Label>
  124. <sld:Font>
  125. <sld:CssParameter name="font-family">SansSerif</sld:CssParameter>
  126. <sld:CssParameter name="font-size">12</sld:CssParameter>
  127. </sld:Font>
  128. <sld:LabelPlacement>
  129. <sld:PointPlacement>
  130. <sld:AnchorPoint>
  131. <sld:AnchorPointX>0.5</sld:AnchorPointX>
  132. <sld:AnchorPointY>1</sld:AnchorPointY>
  133. </sld:AnchorPoint>
  134. <sld:Displacement>
  135. <sld:DisplacementX>0</sld:DisplacementX>
  136. <sld:DisplacementY>-5</sld:DisplacementY>
  137. </sld:Displacement>
  138. </sld:PointPlacement>
  139. </sld:LabelPlacement>
  140. <sld:Halo>
  141. <sld:Radius>0.75</sld:Radius>
  142. <sld:Fill>
  143. <sld:CssParameter name="fill">#FFFFFF</sld:CssParameter>
  144. <sld:CssParameter name="fill-opacity">0.75</sld:CssParameter>
  145. </sld:Fill>
  146. </sld:Halo>
  147. <sld:Fill>
  148. <sld:CssParameter name="fill">#000000</sld:CssParameter>
  149. </sld:Fill>
  150. <sld:Priority>
  151. <ogc:Sub>
  152. <ogc:Literal>100</ogc:Literal>
  153. <ogc:PropertyName>labelrank</ogc:PropertyName>
  154. </ogc:Sub>
  155. </sld:Priority>
  156. <sld:VendorOption name="maxDisplacement">10</sld:VendorOption>
  157. </sld:TextSymbolizer>
  158. </sld:Rule>
  159. <sld:Rule>
  160. <sld:MaxScaleDenominator>3.5E7</sld:MaxScaleDenominator>
  161. <sld:PointSymbolizer>
  162. <sld:Graphic>
  163. <sld:Mark>
  164. <sld:WellKnownName>${if_then_else(equalTo(featurecla,'Admin-0 capital'),'star','circle')}</sld:WellKnownName>
  165. <sld:Fill>
  166. <CssParameter name="fill">#999999</CssParameter>
  167. </sld:Fill>
  168. <sld:Stroke>
  169. <sld:CssParameter name="stroke">#666666</sld:CssParameter>
  170. <sld:CssParameter name="stroke-width">1.5</sld:CssParameter>
  171. </sld:Stroke>
  172. </sld:Mark>
  173. <sld:Size>
  174. <ogc:Function name="if_then_else">
  175. <ogc:Function name="equalTo">
  176. <ogc:PropertyName>featurecla</ogc:PropertyName>
  177. <ogc:Literal>Admin-0 capital</ogc:Literal>
  178. </ogc:Function>
  179. <ogc:Literal>8</ogc:Literal>
  180. <ogc:Literal>6</ogc:Literal>
  181. </ogc:Function>
  182. </sld:Size>
  183. </sld:Graphic>
  184. <sld:VendorOption name="labelObstacle">true</sld:VendorOption>
  185. </sld:PointSymbolizer>
  186. <sld:TextSymbolizer>
  187. <sld:Label>
  188. <ogc:PropertyName>name</ogc:PropertyName>
  189. </sld:Label>
  190. <sld:Font>
  191. <sld:CssParameter name="font-family">SansSerif</sld:CssParameter>
  192. <sld:CssParameter name="font-size">14</sld:CssParameter>
  193. </sld:Font>
  194. <sld:LabelPlacement>
  195. <sld:PointPlacement>
  196. <sld:AnchorPoint>
  197. <sld:AnchorPointX>0.5</sld:AnchorPointX>
  198. <sld:AnchorPointY>1</sld:AnchorPointY>
  199. </sld:AnchorPoint>
  200. <sld:Displacement>
  201. <sld:DisplacementX>0</sld:DisplacementX>
  202. <sld:DisplacementY>-5</sld:DisplacementY>
  203. </sld:Displacement>
  204. </sld:PointPlacement>
  205. </sld:LabelPlacement>
  206. <Halo>
  207. <Radius>1.5</Radius>
  208. <Fill>
  209. <CssParameter name="fill">#FFFFFF</CssParameter>
  210. <CssParameter name="fill-opacity">0.75</CssParameter>
  211. </Fill>
  212. </Halo>
  213. <sld:Fill>
  214. <sld:CssParameter name="fill">#000000</sld:CssParameter>
  215. </sld:Fill>
  216. <sld:Priority>
  217. <ogc:Sub>
  218. <ogc:Literal>100</ogc:Literal>
  219. <ogc:PropertyName>labelrank</ogc:PropertyName>
  220. </ogc:Sub>
  221. </sld:Priority>
  222. <sld:VendorOption name="maxDisplacement">12</sld:VendorOption>
  223. <sld:VendorOption name="spaceAround">5</sld:VendorOption>
  224. </sld:TextSymbolizer>
  225. </sld:Rule>
  226. </sld:FeatureTypeStyle>
  227. </sld:UserStyle>
  228. </sld:NamedLayer>
  229. </sld:StyledLayerDescriptor>