comparison pkg/geoserver/templates_test.go @ 3832:cbced21c6d94 sld-colors

Adjusted unit test for SLD templating.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 04 Jul 2019 17:18:05 +0200
parents 464a6a6e05e6
children 3fcc4e11fc00
comparison
equal deleted inserted replaced
3831:0ffea636d6b0 3832:cbced21c6d94
32 <NamedLayer> 32 <NamedLayer>
33 <se:Name>sounding_results_contour_lines</se:Name> 33 <se:Name>sounding_results_contour_lines</se:Name>
34 <UserStyle> 34 <UserStyle>
35 <se:Name>sounding_results_contour_lines</se:Name> 35 <se:Name>sounding_results_contour_lines</se:Name>
36 <se:FeatureTypeStyle> 36 <se:FeatureTypeStyle>
37 <se:Name>contour_line_colours</se:Name> 37 <se:Name>contour_line_colours</se:Name>
38 <se:Description> 38 <se:Description>
39 <se:Abstract> 39 <se:Abstract>
40 FeatureTypeStyle defining colour classes for height attribute 40 FeatureTypeStyle defining colour classes for height attribute
41 </se:Abstract> 41 </se:Abstract>
42 </se:Description> 42 </se:Description>
43 {{ range . -}} 43 {{ range . -}}
44 {{- if and .HasLow .HasHigh -}} 44 <se:Rule>
45 <se:Rule> 45 {{- if not .HasLow }}
46 <se:Name>&#8804; {{ printf "%.1f" .High }}</se:Name> 46 <se:Name>&#8804; {{ printf "%g" .High }}</se:Name>
47 <ogc:Filter>
48 <ogc:And>
49 <ogc:PropertyIsGreaterThan>
50 <ogc:PropertyName>height</ogc:PropertyName>
51 <ogc:Literal>{{.Low}}</ogc:Literal>
52 </ogc:PropertyIsGreaterThan>
53 <ogc:PropertyIsLessThanOrEqualTo>
54 <ogc:PropertyName>height</ogc:PropertyName>
55 <ogc:Literal>{{ printf "%g" .High }}</ogc:Literal>
56 </ogc:PropertyIsLessThanOrEqualTo>
57 </ogc:And>
58 </ogc:Filter>
59 <se:LineSymbolizer>
60 <se:Stroke>
61 <se:SvgParameter name="stroke">{{.Color}}</se:SvgParameter>
62 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
63 </se:Stroke>
64 </se:LineSymbolizer>
65 </se:Rule>
66 {{ else if .HasLow -}}
67 <se:Rule>
68 <se:Name>&gt; {{ printf "%.1f" .Low }}</se:Name>
69 <ogc:Filter>
70 <ogc:PropertyIsGreaterThan>
71 <ogc:PropertyName>height</ogc:PropertyName>
72 <ogc:Literal>{{ printf "%g" .Low }}</ogc:Literal>
73 </ogc:PropertyIsGreaterThan>
74 </ogc:Filter>
75 <se:LineSymbolizer>
76 <se:Stroke>
77 <se:SvgParameter name="stroke">{{.Color}}</se:SvgParameter>
78 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
79 </se:Stroke>
80 </se:LineSymbolizer>
81 </se:Rule>
82 {{ else if .HasHigh -}}
83 <se:Rule>
84 <se:Name>&#8804; {{ printf "%.1f" .High }}</se:Name>
85 <ogc:Filter> 47 <ogc:Filter>
86 <ogc:PropertyIsLessThanOrEqualTo> 48 <ogc:PropertyIsLessThanOrEqualTo>
87 <ogc:PropertyName>height</ogc:PropertyName> 49 <ogc:PropertyName>height</ogc:PropertyName>
88 <ogc:Literal>{{ printf "%g" .High }}</ogc:Literal> 50 <ogc:Literal>{{ printf "%g" .High }}</ogc:Literal>
89 </ogc:PropertyIsLessThanOrEqualTo> 51 </ogc:PropertyIsLessThanOrEqualTo>
90 </ogc:Filter> 52 </ogc:Filter>
91 <se:LineSymbolizer> 53 {{- else if not .HasHigh }}
92 <se:Stroke> 54 <se:Name>&gt; {{ printf "%g" .Low }}</se:Name>
93 <se:SvgParameter name="stroke">{{.Color}}</se:SvgParameter> 55 <ogc:Filter>
94 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 56 <ogc:PropertyIsGreaterThanOrEqualTo>
95 </se:Stroke> 57 <ogc:PropertyName>height</ogc:PropertyName>
96 </se:LineSymbolizer> 58 <ogc:Literal>{{ printf "%g" .Low }}</ogc:Literal>
97 </se:Rule> 59 </ogc:PropertyIsGreaterThanOrEqualTo>
98 {{ end -}} 60 </ogc:Filter>
61 {{- else }}
62 <se:Name>&#8804; {{ printf "%g" .High }}</se:Name>
63 <ogc:Filter>
64 <ogc:And>
65 <ogc:PropertyIsGreaterThan>
66 <ogc:PropertyName>height</ogc:PropertyName>
67 <ogc:Literal>{{ printf "%g" .Low }}</ogc:Literal>
68 </ogc:PropertyIsGreaterThan>
69 <ogc:PropertyIsLessThanOrEqualTo>
70 <ogc:PropertyName>height</ogc:PropertyName>
71 <ogc:Literal>{{ printf "%g" .High }}</ogc:Literal>
72 </ogc:PropertyIsLessThanOrEqualTo>
73 </ogc:And>
74 </ogc:Filter>
75 {{- end }}
76 <se:LineSymbolizer>
77 <se:Stroke>
78 <se:SvgParameter name="stroke">{{ .Color }}</se:SvgParameter>
79 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
80 </se:Stroke>
81 </se:LineSymbolizer>
82 </se:Rule>
99 {{ end }} 83 {{ end }}
100 </se:FeatureTypeStyle> 84 </se:FeatureTypeStyle>
101 <se:FeatureTypeStyle> 85 <se:FeatureTypeStyle>
102 <se:Name>contour_lines_emph</se:Name> 86 <se:Name>contour_lines_emph</se:Name>
103 <se:Description> 87 <se:Description>
104 <se:Abstract> 88 <se:Abstract>
105 FeatureTypeStyle for emphasized contour lines 89 FeatureTypeStyle for emphasized contour lines
106 </se:Abstract> 90 </se:Abstract>
107 </se:Description> 91 </se:Description>
108 <se:Rule> 92 <se:Rule>
109 <se:LegendGraphic> 93 <se:LegendGraphic>
110 <se:Graphic> 94 <se:Graphic>
111 </se:Graphic> 95 </se:Graphic>
112 </se:LegendGraphic> 96 </se:LegendGraphic>
113 <ogc:Filter> 97 <ogc:Filter>
114 <ogc:Or> 98 <ogc:Or>
115 {{- range . }} 99 {{ range . -}}
116 {{if .HasHigh -}} 100 {{ if .HasHigh -}}
117 <ogc:PropertyIsEqualTo> 101 <ogc:PropertyIsEqualTo>
118 <ogc:Function name="numberFormat"> 102 <ogc:Function name="numberFormat">
119 <ogc:Literal>0.0</ogc:Literal> 103 <ogc:Literal>0.0</ogc:Literal>
120 <ogc:PropertyName>height</ogc:PropertyName> 104 <ogc:PropertyName>height</ogc:PropertyName>
121 </ogc:Function> 105 </ogc:Function>
122 <ogc:Literal>{{ printf "%.1f" .High }}</ogc:Literal> 106 <ogc:Literal>{{ printf "%g" .High }}</ogc:Literal>
123 </ogc:PropertyIsEqualTo> 107 </ogc:PropertyIsEqualTo>
124 {{- end -}} 108 {{ end -}}
125 {{end }} 109 {{ end }}
126 </ogc:Or> 110 </ogc:Or>
127 </ogc:Filter> 111 </ogc:Filter>
128 <se:MaxScaleDenominator>5e3</se:MaxScaleDenominator> 112 <se:MaxScaleDenominator>5e3</se:MaxScaleDenominator>
129 <se:LineSymbolizer> 113 <se:LineSymbolizer>
130 <se:Stroke> 114 <se:Stroke>
133 <ogc:Function name="Recode"> 117 <ogc:Function name="Recode">
134 <ogc:Function name="numberFormat"> 118 <ogc:Function name="numberFormat">
135 <ogc:Literal>0.0</ogc:Literal> 119 <ogc:Literal>0.0</ogc:Literal>
136 <ogc:PropertyName>height</ogc:PropertyName> 120 <ogc:PropertyName>height</ogc:PropertyName>
137 </ogc:Function> 121 </ogc:Function>
138 {{- range .}} 122 {{ range . -}}
139 {{if .HasHigh -}} 123 {{ if .HasHigh -}}
140 <ogc:Literal>{{ printf "%.1f" .High }}</ogc:Literal> 124 <ogc:Literal>{{ printf "%g" .High }}</ogc:Literal>
141 <ogc:Literal>{{.Color}}</ogc:Literal> 125 <ogc:Literal>{{ .Color }}</ogc:Literal>
142 {{- end -}} 126 {{ end -}}
143 {{end}} 127 {{ end }}
144 </ogc:Function> 128 </ogc:Function>
145 </se:SvgParameter> 129 </se:SvgParameter>
146 </se:Stroke> 130 </se:Stroke>
147 </se:LineSymbolizer> 131 </se:LineSymbolizer>
148 </se:Rule> 132 </se:Rule>
161 <ogc:Function name="Recode"> 145 <ogc:Function name="Recode">
162 <ogc:Function name="numberFormat"> 146 <ogc:Function name="numberFormat">
163 <ogc:Literal>0.0</ogc:Literal> 147 <ogc:Literal>0.0</ogc:Literal>
164 <ogc:PropertyName>height</ogc:PropertyName> 148 <ogc:PropertyName>height</ogc:PropertyName>
165 </ogc:Function> 149 </ogc:Function>
166 {{- range . }} 150 {{ range . -}}
167 {{ if .HasHigh -}} 151 {{ if .HasHigh -}}
168 <ogc:Literal>{{ printf "%.1f" .High}}</ogc:Literal><ogc:Literal>{{ printf "%.1f" .High}}</ogc:Literal> 152 <ogc:Literal>
169 {{- else if .HasLow -}} 153 {{- printf "%g" .High -}}
170 <ogc:Literal>{{ printf "%.1f" .Low}}</ogc:Literal><ogc:Literal>{{ printf "%.1f" .Low}}</ogc:Literal> 154 </ogc:Literal><ogc:Literal>
171 {{- end }} 155 {{- printf "%g" .High -}}
172 {{- end }} 156 </ogc:Literal>
157 {{ end -}}
158 {{ end }}
173 </ogc:Function> 159 </ogc:Function>
174 </se:Label> 160 </se:Label>
175 <se:LabelPlacement> 161 <se:LabelPlacement>
176 <se:LinePlacement> 162 <se:LinePlacement>
177 <se:PerpendicularOffset>5</se:PerpendicularOffset> 163 <se:PerpendicularOffset>5</se:PerpendicularOffset>
192 </UserStyle> 178 </UserStyle>
193 </NamedLayer> 179 </NamedLayer>
194 </StyledLayerDescriptor> 180 </StyledLayerDescriptor>
195 ` 181 `
196 182
197 const origSLD = ` 183 const origSLD = `<?xml version="1.0" encoding="UTF-8"?>
198 <?xml version="1.0" encoding="UTF-8"?>
199 <StyledLayerDescriptor 184 <StyledLayerDescriptor
200 xmlns="http://www.opengis.net/sld" 185 xmlns="http://www.opengis.net/sld"
201 xmlns:se="http://www.opengis.net/se" 186 xmlns:se="http://www.opengis.net/se"
202 xmlns:ogc="http://www.opengis.net/ogc" 187 xmlns:ogc="http://www.opengis.net/ogc"
203 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 188 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
206 <NamedLayer> 191 <NamedLayer>
207 <se:Name>sounding_results_contour_lines</se:Name> 192 <se:Name>sounding_results_contour_lines</se:Name>
208 <UserStyle> 193 <UserStyle>
209 <se:Name>sounding_results_contour_lines</se:Name> 194 <se:Name>sounding_results_contour_lines</se:Name>
210 <se:FeatureTypeStyle> 195 <se:FeatureTypeStyle>
211 <se:Name>contour_line_colours</se:Name> 196 <se:Name>contour_line_colours</se:Name>
212 <se:Description> 197 <se:Description>
213 <se:Abstract> 198 <se:Abstract>
214 FeatureTypeStyle defining colour classes for height attribute 199 FeatureTypeStyle defining colour classes for height attribute
215 </se:Abstract> 200 </se:Abstract>
216 </se:Description> 201 </se:Description>
217 <se:Rule> 202 <se:Rule>
218 <se:Name>&#8804; 1.0</se:Name> 203 <se:Name>&#8804; 1</se:Name>
219 <ogc:Filter> 204 <ogc:Filter>
220 <ogc:PropertyIsLessThanOrEqualTo> 205 <ogc:PropertyIsLessThanOrEqualTo>
221 <ogc:PropertyName>height</ogc:PropertyName> 206 <ogc:PropertyName>height</ogc:PropertyName>
222 <ogc:Literal>1</ogc:Literal> 207 <ogc:Literal>1</ogc:Literal>
223 </ogc:PropertyIsLessThanOrEqualTo> 208 </ogc:PropertyIsLessThanOrEqualTo>
224 </ogc:Filter> 209 </ogc:Filter>
225 <se:LineSymbolizer> 210 <se:LineSymbolizer>
226 <se:Stroke> 211 <se:Stroke>
227 <se:SvgParameter name="stroke">#ff00dd</se:SvgParameter> 212 <se:SvgParameter name="stroke">#ff00dd</se:SvgParameter>
228 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 213 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
229 </se:Stroke> 214 </se:Stroke>
230 </se:LineSymbolizer> 215 </se:LineSymbolizer>
241 <ogc:PropertyName>height</ogc:PropertyName> 226 <ogc:PropertyName>height</ogc:PropertyName>
242 <ogc:Literal>1.5</ogc:Literal> 227 <ogc:Literal>1.5</ogc:Literal>
243 </ogc:PropertyIsLessThanOrEqualTo> 228 </ogc:PropertyIsLessThanOrEqualTo>
244 </ogc:And> 229 </ogc:And>
245 </ogc:Filter> 230 </ogc:Filter>
246 <se:LineSymbolizer> 231 <se:LineSymbolizer>
247 <se:Stroke> 232 <se:Stroke>
248 <se:SvgParameter name="stroke">#fb08b6</se:SvgParameter> 233 <se:SvgParameter name="stroke">#fb209e</se:SvgParameter>
249 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 234 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
250 </se:Stroke> 235 </se:Stroke>
251 </se:LineSymbolizer> 236 </se:LineSymbolizer>
252 </se:Rule> 237 </se:Rule>
253 <se:Rule> 238 <se:Rule>
262 <ogc:PropertyName>height</ogc:PropertyName> 247 <ogc:PropertyName>height</ogc:PropertyName>
263 <ogc:Literal>1.7</ogc:Literal> 248 <ogc:Literal>1.7</ogc:Literal>
264 </ogc:PropertyIsLessThanOrEqualTo> 249 </ogc:PropertyIsLessThanOrEqualTo>
265 </ogc:And> 250 </ogc:And>
266 </ogc:Filter> 251 </ogc:Filter>
267 <se:LineSymbolizer> 252 <se:LineSymbolizer>
268 <se:Stroke> 253 <se:Stroke>
269 <se:SvgParameter name="stroke">#f81090</se:SvgParameter> 254 <se:SvgParameter name="stroke">#f92c85</se:SvgParameter>
270 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 255 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
271 </se:Stroke> 256 </se:Stroke>
272 </se:LineSymbolizer> 257 </se:LineSymbolizer>
273 </se:Rule> 258 </se:Rule>
274 <se:Rule> 259 <se:Rule>
283 <ogc:PropertyName>height</ogc:PropertyName> 268 <ogc:PropertyName>height</ogc:PropertyName>
284 <ogc:Literal>1.9</ogc:Literal> 269 <ogc:Literal>1.9</ogc:Literal>
285 </ogc:PropertyIsLessThanOrEqualTo> 270 </ogc:PropertyIsLessThanOrEqualTo>
286 </ogc:And> 271 </ogc:And>
287 </ogc:Filter> 272 </ogc:Filter>
288 <se:LineSymbolizer> 273 <se:LineSymbolizer>
289 <se:Stroke> 274 <se:Stroke>
290 <se:SvgParameter name="stroke">#f5196a</se:SvgParameter> 275 <se:SvgParameter name="stroke">#f7396c</se:SvgParameter>
291 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 276 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
292 </se:Stroke> 277 </se:Stroke>
293 </se:LineSymbolizer> 278 </se:LineSymbolizer>
294 </se:Rule> 279 </se:Rule>
295 <se:Rule> 280 <se:Rule>
304 <ogc:PropertyName>height</ogc:PropertyName> 289 <ogc:PropertyName>height</ogc:PropertyName>
305 <ogc:Literal>2.1</ogc:Literal> 290 <ogc:Literal>2.1</ogc:Literal>
306 </ogc:PropertyIsLessThanOrEqualTo> 291 </ogc:PropertyIsLessThanOrEqualTo>
307 </ogc:And> 292 </ogc:And>
308 </ogc:Filter> 293 </ogc:Filter>
309 <se:LineSymbolizer> 294 <se:LineSymbolizer>
310 <se:Stroke> 295 <se:Stroke>
311 <se:SvgParameter name="stroke">#f22144</se:SvgParameter> 296 <se:SvgParameter name="stroke">#f54652</se:SvgParameter>
312 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 297 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
313 </se:Stroke> 298 </se:Stroke>
314 </se:LineSymbolizer> 299 </se:LineSymbolizer>
315 </se:Rule> 300 </se:Rule>
316 <se:Rule> 301 <se:Rule>
325 <ogc:PropertyName>height</ogc:PropertyName> 310 <ogc:PropertyName>height</ogc:PropertyName>
326 <ogc:Literal>2.3</ogc:Literal> 311 <ogc:Literal>2.3</ogc:Literal>
327 </ogc:PropertyIsLessThanOrEqualTo> 312 </ogc:PropertyIsLessThanOrEqualTo>
328 </ogc:And> 313 </ogc:And>
329 </ogc:Filter> 314 </ogc:Filter>
330 <se:LineSymbolizer> 315 <se:LineSymbolizer>
331 <se:Stroke> 316 <se:Stroke>
332 <se:SvgParameter name="stroke">#f03326</se:SvgParameter> 317 <se:SvgParameter name="stroke">#f45239</se:SvgParameter>
333 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 318 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
334 </se:Stroke> 319 </se:Stroke>
335 </se:LineSymbolizer> 320 </se:LineSymbolizer>
336 </se:Rule> 321 </se:Rule>
337 <se:Rule> 322 <se:Rule>
346 <ogc:PropertyName>height</ogc:PropertyName> 331 <ogc:PropertyName>height</ogc:PropertyName>
347 <ogc:Literal>2.5</ogc:Literal> 332 <ogc:Literal>2.5</ogc:Literal>
348 </ogc:PropertyIsLessThanOrEqualTo> 333 </ogc:PropertyIsLessThanOrEqualTo>
349 </ogc:And> 334 </ogc:And>
350 </ogc:Filter> 335 </ogc:Filter>
351 <se:LineSymbolizer> 336 <se:LineSymbolizer>
352 <se:Stroke> 337 <se:Stroke>
353 <se:SvgParameter name="stroke">#f25f20</se:SvgParameter> 338 <se:SvgParameter name="stroke">#f25f20</se:SvgParameter>
354 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 339 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
355 </se:Stroke> 340 </se:Stroke>
356 </se:LineSymbolizer> 341 </se:LineSymbolizer>
367 <ogc:PropertyName>height</ogc:PropertyName> 352 <ogc:PropertyName>height</ogc:PropertyName>
368 <ogc:Literal>2.7</ogc:Literal> 353 <ogc:Literal>2.7</ogc:Literal>
369 </ogc:PropertyIsLessThanOrEqualTo> 354 </ogc:PropertyIsLessThanOrEqualTo>
370 </ogc:And> 355 </ogc:And>
371 </ogc:Filter> 356 </ogc:Filter>
372 <se:LineSymbolizer> 357 <se:LineSymbolizer>
373 <se:Stroke> 358 <se:Stroke>
374 <se:SvgParameter name="stroke">#f38b1a</se:SvgParameter> 359 <se:SvgParameter name="stroke">#e46f1f</se:SvgParameter>
375 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 360 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
376 </se:Stroke> 361 </se:Stroke>
377 </se:LineSymbolizer> 362 </se:LineSymbolizer>
378 </se:Rule> 363 </se:Rule>
379 <se:Rule> 364 <se:Rule>
388 <ogc:PropertyName>height</ogc:PropertyName> 373 <ogc:PropertyName>height</ogc:PropertyName>
389 <ogc:Literal>2.9</ogc:Literal> 374 <ogc:Literal>2.9</ogc:Literal>
390 </ogc:PropertyIsLessThanOrEqualTo> 375 </ogc:PropertyIsLessThanOrEqualTo>
391 </ogc:And> 376 </ogc:And>
392 </ogc:Filter> 377 </ogc:Filter>
393 <se:LineSymbolizer> 378 <se:LineSymbolizer>
394 <se:Stroke> 379 <se:Stroke>
395 <se:SvgParameter name="stroke">#f5b814</se:SvgParameter> 380 <se:SvgParameter name="stroke">#d67e1e</se:SvgParameter>
396 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 381 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
397 </se:Stroke> 382 </se:Stroke>
398 </se:LineSymbolizer> 383 </se:LineSymbolizer>
399 </se:Rule> 384 </se:Rule>
400 <se:Rule> 385 <se:Rule>
409 <ogc:PropertyName>height</ogc:PropertyName> 394 <ogc:PropertyName>height</ogc:PropertyName>
410 <ogc:Literal>3.1</ogc:Literal> 395 <ogc:Literal>3.1</ogc:Literal>
411 </ogc:PropertyIsLessThanOrEqualTo> 396 </ogc:PropertyIsLessThanOrEqualTo>
412 </ogc:And> 397 </ogc:And>
413 </ogc:Filter> 398 </ogc:Filter>
414 <se:LineSymbolizer> 399 <se:LineSymbolizer>
415 <se:Stroke> 400 <se:Stroke>
416 <se:SvgParameter name="stroke">#f7e40e</se:SvgParameter> 401 <se:SvgParameter name="stroke">#c88e1e</se:SvgParameter>
417 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 402 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
418 </se:Stroke> 403 </se:Stroke>
419 </se:LineSymbolizer> 404 </se:LineSymbolizer>
420 </se:Rule> 405 </se:Rule>
421 <se:Rule> 406 <se:Rule>
430 <ogc:PropertyName>height</ogc:PropertyName> 415 <ogc:PropertyName>height</ogc:PropertyName>
431 <ogc:Literal>3.3</ogc:Literal> 416 <ogc:Literal>3.3</ogc:Literal>
432 </ogc:PropertyIsLessThanOrEqualTo> 417 </ogc:PropertyIsLessThanOrEqualTo>
433 </ogc:And> 418 </ogc:And>
434 </ogc:Filter> 419 </ogc:Filter>
435 <se:LineSymbolizer> 420 <se:LineSymbolizer>
436 <se:Stroke> 421 <se:Stroke>
437 <se:SvgParameter name="stroke">#e2f30e</se:SvgParameter> 422 <se:SvgParameter name="stroke">#bb9e1d</se:SvgParameter>
438 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 423 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
439 </se:Stroke> 424 </se:Stroke>
440 </se:LineSymbolizer> 425 </se:LineSymbolizer>
441 </se:Rule> 426 </se:Rule>
442 <se:Rule> 427 <se:Rule>
451 <ogc:PropertyName>height</ogc:PropertyName> 436 <ogc:PropertyName>height</ogc:PropertyName>
452 <ogc:Literal>3.5</ogc:Literal> 437 <ogc:Literal>3.5</ogc:Literal>
453 </ogc:PropertyIsLessThanOrEqualTo> 438 </ogc:PropertyIsLessThanOrEqualTo>
454 </ogc:And> 439 </ogc:And>
455 </ogc:Filter> 440 </ogc:Filter>
456 <se:LineSymbolizer> 441 <se:LineSymbolizer>
457 <se:Stroke> 442 <se:Stroke>
458 <se:SvgParameter name="stroke">#b6e414</se:SvgParameter> 443 <se:SvgParameter name="stroke">#adae1c</se:SvgParameter>
459 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 444 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
460 </se:Stroke> 445 </se:Stroke>
461 </se:LineSymbolizer> 446 </se:LineSymbolizer>
462 </se:Rule> 447 </se:Rule>
463 <se:Rule> 448 <se:Rule>
464 <se:Name>&#8804; 4.0</se:Name> 449 <se:Name>&#8804; 4</se:Name>
465 <ogc:Filter> 450 <ogc:Filter>
466 <ogc:And> 451 <ogc:And>
467 <ogc:PropertyIsGreaterThan> 452 <ogc:PropertyIsGreaterThan>
468 <ogc:PropertyName>height</ogc:PropertyName> 453 <ogc:PropertyName>height</ogc:PropertyName>
469 <ogc:Literal>3.5</ogc:Literal> 454 <ogc:Literal>3.5</ogc:Literal>
472 <ogc:PropertyName>height</ogc:PropertyName> 457 <ogc:PropertyName>height</ogc:PropertyName>
473 <ogc:Literal>4</ogc:Literal> 458 <ogc:Literal>4</ogc:Literal>
474 </ogc:PropertyIsLessThanOrEqualTo> 459 </ogc:PropertyIsLessThanOrEqualTo>
475 </ogc:And> 460 </ogc:And>
476 </ogc:Filter> 461 </ogc:Filter>
477 <se:LineSymbolizer> 462 <se:LineSymbolizer>
478 <se:Stroke> 463 <se:Stroke>
479 <se:SvgParameter name="stroke">#8ad51a</se:SvgParameter> 464 <se:SvgParameter name="stroke">#8ad51a</se:SvgParameter>
480 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 465 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
481 </se:Stroke> 466 </se:Stroke>
482 </se:LineSymbolizer> 467 </se:LineSymbolizer>
493 <ogc:PropertyName>height</ogc:PropertyName> 478 <ogc:PropertyName>height</ogc:PropertyName>
494 <ogc:Literal>4.5</ogc:Literal> 479 <ogc:Literal>4.5</ogc:Literal>
495 </ogc:PropertyIsLessThanOrEqualTo> 480 </ogc:PropertyIsLessThanOrEqualTo>
496 </ogc:And> 481 </ogc:And>
497 </ogc:Filter> 482 </ogc:Filter>
498 <se:LineSymbolizer> 483 <se:LineSymbolizer>
499 <se:Stroke> 484 <se:Stroke>
500 <se:SvgParameter name="stroke">#5ec620</se:SvgParameter> 485 <se:SvgParameter name="stroke">#76b540</se:SvgParameter>
501 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 486 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
502 </se:Stroke> 487 </se:Stroke>
503 </se:LineSymbolizer> 488 </se:LineSymbolizer>
504 </se:Rule> 489 </se:Rule>
505 <se:Rule> 490 <se:Rule>
506 <se:Name>&#8804; 5.0</se:Name> 491 <se:Name>&#8804; 5</se:Name>
507 <ogc:Filter> 492 <ogc:Filter>
508 <ogc:And> 493 <ogc:And>
509 <ogc:PropertyIsGreaterThan> 494 <ogc:PropertyIsGreaterThan>
510 <ogc:PropertyName>height</ogc:PropertyName> 495 <ogc:PropertyName>height</ogc:PropertyName>
511 <ogc:Literal>4.5</ogc:Literal> 496 <ogc:Literal>4.5</ogc:Literal>
514 <ogc:PropertyName>height</ogc:PropertyName> 499 <ogc:PropertyName>height</ogc:PropertyName>
515 <ogc:Literal>5</ogc:Literal> 500 <ogc:Literal>5</ogc:Literal>
516 </ogc:PropertyIsLessThanOrEqualTo> 501 </ogc:PropertyIsLessThanOrEqualTo>
517 </ogc:And> 502 </ogc:And>
518 </ogc:Filter> 503 </ogc:Filter>
519 <se:LineSymbolizer> 504 <se:LineSymbolizer>
520 <se:Stroke> 505 <se:Stroke>
521 <se:SvgParameter name="stroke">#32b726</se:SvgParameter> 506 <se:SvgParameter name="stroke">#639566</se:SvgParameter>
522 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 507 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
523 </se:Stroke> 508 </se:Stroke>
524 </se:LineSymbolizer> 509 </se:LineSymbolizer>
525 </se:Rule> 510 </se:Rule>
526 <se:Rule> 511 <se:Rule>
535 <ogc:PropertyName>height</ogc:PropertyName> 520 <ogc:PropertyName>height</ogc:PropertyName>
536 <ogc:Literal>5.5</ogc:Literal> 521 <ogc:Literal>5.5</ogc:Literal>
537 </ogc:PropertyIsLessThanOrEqualTo> 522 </ogc:PropertyIsLessThanOrEqualTo>
538 </ogc:And> 523 </ogc:And>
539 </ogc:Filter> 524 </ogc:Filter>
540 <se:LineSymbolizer> 525 <se:LineSymbolizer>
541 <se:Stroke> 526 <se:Stroke>
542 <se:SvgParameter name="stroke">#249a49</se:SvgParameter> 527 <se:SvgParameter name="stroke">#4f758d</se:SvgParameter>
543 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 528 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
544 </se:Stroke> 529 </se:Stroke>
545 </se:LineSymbolizer> 530 </se:LineSymbolizer>
546 </se:Rule> 531 </se:Rule>
547 <se:Rule> 532 <se:Rule>
548 <se:Name>&#8804; 6.0</se:Name> 533 <se:Name>&#8804; 6</se:Name>
549 <ogc:Filter> 534 <ogc:Filter>
550 <ogc:And> 535 <ogc:And>
551 <ogc:PropertyIsGreaterThan> 536 <ogc:PropertyIsGreaterThan>
552 <ogc:PropertyName>height</ogc:PropertyName> 537 <ogc:PropertyName>height</ogc:PropertyName>
553 <ogc:Literal>5.5</ogc:Literal> 538 <ogc:Literal>5.5</ogc:Literal>
556 <ogc:PropertyName>height</ogc:PropertyName> 541 <ogc:PropertyName>height</ogc:PropertyName>
557 <ogc:Literal>6</ogc:Literal> 542 <ogc:Literal>6</ogc:Literal>
558 </ogc:PropertyIsLessThanOrEqualTo> 543 </ogc:PropertyIsLessThanOrEqualTo>
559 </ogc:And> 544 </ogc:And>
560 </ogc:Filter> 545 </ogc:Filter>
561 <se:LineSymbolizer> 546 <se:LineSymbolizer>
562 <se:Stroke> 547 <se:Stroke>
563 <se:SvgParameter name="stroke">#207977</se:SvgParameter> 548 <se:SvgParameter name="stroke">#3b54b3</se:SvgParameter>
564 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 549 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
565 </se:Stroke> 550 </se:Stroke>
566 </se:LineSymbolizer> 551 </se:LineSymbolizer>
567 </se:Rule> 552 </se:Rule>
568 <se:Rule> 553 <se:Rule>
577 <ogc:PropertyName>height</ogc:PropertyName> 562 <ogc:PropertyName>height</ogc:PropertyName>
578 <ogc:Literal>6.5</ogc:Literal> 563 <ogc:Literal>6.5</ogc:Literal>
579 </ogc:PropertyIsLessThanOrEqualTo> 564 </ogc:PropertyIsLessThanOrEqualTo>
580 </ogc:And> 565 </ogc:And>
581 </ogc:Filter> 566 </ogc:Filter>
582 <se:LineSymbolizer> 567 <se:LineSymbolizer>
583 <se:Stroke> 568 <se:Stroke>
584 <se:SvgParameter name="stroke">#1c57a4</se:SvgParameter> 569 <se:SvgParameter name="stroke">#2834d9</se:SvgParameter>
585 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 570 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
586 </se:Stroke> 571 </se:Stroke>
587 </se:LineSymbolizer> 572 </se:LineSymbolizer>
588 </se:Rule> 573 </se:Rule>
589 <se:Rule> 574 <se:Rule>
590 <se:Name>&#8804; 7.0</se:Name> 575 <se:Name>&#8804; 7</se:Name>
591 <ogc:Filter> 576 <ogc:Filter>
592 <ogc:And> 577 <ogc:And>
593 <ogc:PropertyIsGreaterThan> 578 <ogc:PropertyIsGreaterThan>
594 <ogc:PropertyName>height</ogc:PropertyName> 579 <ogc:PropertyName>height</ogc:PropertyName>
595 <ogc:Literal>6.5</ogc:Literal> 580 <ogc:Literal>6.5</ogc:Literal>
598 <ogc:PropertyName>height</ogc:PropertyName> 583 <ogc:PropertyName>height</ogc:PropertyName>
599 <ogc:Literal>7</ogc:Literal> 584 <ogc:Literal>7</ogc:Literal>
600 </ogc:PropertyIsLessThanOrEqualTo> 585 </ogc:PropertyIsLessThanOrEqualTo>
601 </ogc:And> 586 </ogc:And>
602 </ogc:Filter> 587 </ogc:Filter>
603 <se:LineSymbolizer> 588 <se:LineSymbolizer>
604 <se:Stroke> 589 <se:Stroke>
605 <se:SvgParameter name="stroke">#1835d1</se:SvgParameter> 590 <se:SvgParameter name="stroke">#1414ff</se:SvgParameter>
606 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 591 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
607 </se:Stroke> 592 </se:Stroke>
608 </se:LineSymbolizer> 593 </se:LineSymbolizer>
609 </se:Rule> 594 </se:Rule>
610 <se:Rule> 595 <se:Rule>
611 <se:Name>&gt; 7.0</se:Name> 596 <se:Name>&gt; 7</se:Name>
612 <ogc:Filter> 597 <ogc:Filter>
613 <ogc:PropertyIsGreaterThan> 598 <ogc:PropertyIsGreaterThanOrEqualTo>
614 <ogc:PropertyName>height</ogc:PropertyName> 599 <ogc:PropertyName>height</ogc:PropertyName>
615 <ogc:Literal>7</ogc:Literal> 600 <ogc:Literal>7</ogc:Literal>
616 </ogc:PropertyIsGreaterThan> 601 </ogc:PropertyIsGreaterThanOrEqualTo>
617 </ogc:Filter> 602 </ogc:Filter>
618 <se:LineSymbolizer> 603 <se:LineSymbolizer>
619 <se:Stroke> 604 <se:Stroke>
620 <se:SvgParameter name="stroke">#1414ff</se:SvgParameter> 605 <se:SvgParameter name="stroke">#1414ff</se:SvgParameter>
621 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter> 606 <se:SvgParameter name="stroke-width">0.5</se:SvgParameter>
622 </se:Stroke> 607 </se:Stroke>
623 </se:LineSymbolizer> 608 </se:LineSymbolizer>
624 </se:Rule> 609 </se:Rule>
610
625 </se:FeatureTypeStyle> 611 </se:FeatureTypeStyle>
626 <se:FeatureTypeStyle> 612 <se:FeatureTypeStyle>
627 <se:Name>contour_lines_emph</se:Name> 613 <se:Name>contour_lines_emph</se:Name>
628 <se:Description> 614 <se:Description>
629 <se:Abstract> 615 <se:Abstract>
630 FeatureTypeStyle for emphasized contour lines 616 FeatureTypeStyle for emphasized contour lines
631 </se:Abstract> 617 </se:Abstract>
632 </se:Description> 618 </se:Description>
633 <se:Rule> 619 <se:Rule>
634 <se:LegendGraphic> 620 <se:LegendGraphic>
635 <se:Graphic> 621 <se:Graphic>
636 </se:Graphic> 622 </se:Graphic>
637 </se:LegendGraphic> 623 </se:LegendGraphic>
638 <ogc:Filter> 624 <ogc:Filter>
639 <ogc:Or> 625 <ogc:Or>
640 <ogc:PropertyIsEqualTo> 626 <ogc:PropertyIsEqualTo>
641 <ogc:Function name="numberFormat"> 627 <ogc:Function name="numberFormat">
642 <ogc:Literal>0.0</ogc:Literal> 628 <ogc:Literal>0.0</ogc:Literal>
643 <ogc:PropertyName>height</ogc:PropertyName> 629 <ogc:PropertyName>height</ogc:PropertyName>
644 </ogc:Function> 630 </ogc:Function>
645 <ogc:Literal>1.0</ogc:Literal> 631 <ogc:Literal>1</ogc:Literal>
646 </ogc:PropertyIsEqualTo> 632 </ogc:PropertyIsEqualTo>
647 <ogc:PropertyIsEqualTo> 633 <ogc:PropertyIsEqualTo>
648 <ogc:Function name="numberFormat"> 634 <ogc:Function name="numberFormat">
649 <ogc:Literal>0.0</ogc:Literal> 635 <ogc:Literal>0.0</ogc:Literal>
650 <ogc:PropertyName>height</ogc:PropertyName> 636 <ogc:PropertyName>height</ogc:PropertyName>
651 </ogc:Function> 637 </ogc:Function>
652 <ogc:Literal>1.5</ogc:Literal> 638 <ogc:Literal>1.5</ogc:Literal>
653 </ogc:PropertyIsEqualTo> 639 </ogc:PropertyIsEqualTo>
654 <ogc:PropertyIsEqualTo> 640 <ogc:PropertyIsEqualTo>
655 <ogc:Function name="numberFormat"> 641 <ogc:Function name="numberFormat">
656 <ogc:Literal>0.0</ogc:Literal> 642 <ogc:Literal>0.0</ogc:Literal>
657 <ogc:PropertyName>height</ogc:PropertyName> 643 <ogc:PropertyName>height</ogc:PropertyName>
658 </ogc:Function> 644 </ogc:Function>
659 <ogc:Literal>1.7</ogc:Literal> 645 <ogc:Literal>1.7</ogc:Literal>
660 </ogc:PropertyIsEqualTo> 646 </ogc:PropertyIsEqualTo>
661 <ogc:PropertyIsEqualTo> 647 <ogc:PropertyIsEqualTo>
662 <ogc:Function name="numberFormat"> 648 <ogc:Function name="numberFormat">
663 <ogc:Literal>0.0</ogc:Literal> 649 <ogc:Literal>0.0</ogc:Literal>
664 <ogc:PropertyName>height</ogc:PropertyName> 650 <ogc:PropertyName>height</ogc:PropertyName>
665 </ogc:Function> 651 </ogc:Function>
666 <ogc:Literal>1.9</ogc:Literal> 652 <ogc:Literal>1.9</ogc:Literal>
667 </ogc:PropertyIsEqualTo> 653 </ogc:PropertyIsEqualTo>
668 <ogc:PropertyIsEqualTo> 654 <ogc:PropertyIsEqualTo>
669 <ogc:Function name="numberFormat"> 655 <ogc:Function name="numberFormat">
670 <ogc:Literal>0.0</ogc:Literal> 656 <ogc:Literal>0.0</ogc:Literal>
671 <ogc:PropertyName>height</ogc:PropertyName> 657 <ogc:PropertyName>height</ogc:PropertyName>
672 </ogc:Function> 658 </ogc:Function>
673 <ogc:Literal>2.1</ogc:Literal> 659 <ogc:Literal>2.1</ogc:Literal>
674 </ogc:PropertyIsEqualTo> 660 </ogc:PropertyIsEqualTo>
675 <ogc:PropertyIsEqualTo> 661 <ogc:PropertyIsEqualTo>
676 <ogc:Function name="numberFormat"> 662 <ogc:Function name="numberFormat">
677 <ogc:Literal>0.0</ogc:Literal> 663 <ogc:Literal>0.0</ogc:Literal>
678 <ogc:PropertyName>height</ogc:PropertyName> 664 <ogc:PropertyName>height</ogc:PropertyName>
679 </ogc:Function> 665 </ogc:Function>
680 <ogc:Literal>2.3</ogc:Literal> 666 <ogc:Literal>2.3</ogc:Literal>
681 </ogc:PropertyIsEqualTo> 667 </ogc:PropertyIsEqualTo>
682 <ogc:PropertyIsEqualTo> 668 <ogc:PropertyIsEqualTo>
683 <ogc:Function name="numberFormat"> 669 <ogc:Function name="numberFormat">
684 <ogc:Literal>0.0</ogc:Literal> 670 <ogc:Literal>0.0</ogc:Literal>
685 <ogc:PropertyName>height</ogc:PropertyName> 671 <ogc:PropertyName>height</ogc:PropertyName>
686 </ogc:Function> 672 </ogc:Function>
687 <ogc:Literal>2.5</ogc:Literal> 673 <ogc:Literal>2.5</ogc:Literal>
688 </ogc:PropertyIsEqualTo> 674 </ogc:PropertyIsEqualTo>
689 <ogc:PropertyIsEqualTo> 675 <ogc:PropertyIsEqualTo>
690 <ogc:Function name="numberFormat"> 676 <ogc:Function name="numberFormat">
691 <ogc:Literal>0.0</ogc:Literal> 677 <ogc:Literal>0.0</ogc:Literal>
692 <ogc:PropertyName>height</ogc:PropertyName> 678 <ogc:PropertyName>height</ogc:PropertyName>
693 </ogc:Function> 679 </ogc:Function>
694 <ogc:Literal>2.7</ogc:Literal> 680 <ogc:Literal>2.7</ogc:Literal>
695 </ogc:PropertyIsEqualTo> 681 </ogc:PropertyIsEqualTo>
696 <ogc:PropertyIsEqualTo> 682 <ogc:PropertyIsEqualTo>
697 <ogc:Function name="numberFormat"> 683 <ogc:Function name="numberFormat">
698 <ogc:Literal>0.0</ogc:Literal> 684 <ogc:Literal>0.0</ogc:Literal>
699 <ogc:PropertyName>height</ogc:PropertyName> 685 <ogc:PropertyName>height</ogc:PropertyName>
700 </ogc:Function> 686 </ogc:Function>
701 <ogc:Literal>2.9</ogc:Literal> 687 <ogc:Literal>2.9</ogc:Literal>
702 </ogc:PropertyIsEqualTo> 688 </ogc:PropertyIsEqualTo>
703 <ogc:PropertyIsEqualTo> 689 <ogc:PropertyIsEqualTo>
704 <ogc:Function name="numberFormat"> 690 <ogc:Function name="numberFormat">
705 <ogc:Literal>0.0</ogc:Literal> 691 <ogc:Literal>0.0</ogc:Literal>
706 <ogc:PropertyName>height</ogc:PropertyName> 692 <ogc:PropertyName>height</ogc:PropertyName>
707 </ogc:Function> 693 </ogc:Function>
708 <ogc:Literal>3.1</ogc:Literal> 694 <ogc:Literal>3.1</ogc:Literal>
709 </ogc:PropertyIsEqualTo> 695 </ogc:PropertyIsEqualTo>
710 <ogc:PropertyIsEqualTo> 696 <ogc:PropertyIsEqualTo>
711 <ogc:Function name="numberFormat"> 697 <ogc:Function name="numberFormat">
712 <ogc:Literal>0.0</ogc:Literal> 698 <ogc:Literal>0.0</ogc:Literal>
713 <ogc:PropertyName>height</ogc:PropertyName> 699 <ogc:PropertyName>height</ogc:PropertyName>
714 </ogc:Function> 700 </ogc:Function>
715 <ogc:Literal>3.3</ogc:Literal> 701 <ogc:Literal>3.3</ogc:Literal>
716 </ogc:PropertyIsEqualTo> 702 </ogc:PropertyIsEqualTo>
717 <ogc:PropertyIsEqualTo> 703 <ogc:PropertyIsEqualTo>
718 <ogc:Function name="numberFormat"> 704 <ogc:Function name="numberFormat">
719 <ogc:Literal>0.0</ogc:Literal> 705 <ogc:Literal>0.0</ogc:Literal>
720 <ogc:PropertyName>height</ogc:PropertyName> 706 <ogc:PropertyName>height</ogc:PropertyName>
721 </ogc:Function> 707 </ogc:Function>
722 <ogc:Literal>3.5</ogc:Literal> 708 <ogc:Literal>3.5</ogc:Literal>
723 </ogc:PropertyIsEqualTo> 709 </ogc:PropertyIsEqualTo>
724 <ogc:PropertyIsEqualTo> 710 <ogc:PropertyIsEqualTo>
725 <ogc:Function name="numberFormat"> 711 <ogc:Function name="numberFormat">
726 <ogc:Literal>0.0</ogc:Literal> 712 <ogc:Literal>0.0</ogc:Literal>
727 <ogc:PropertyName>height</ogc:PropertyName> 713 <ogc:PropertyName>height</ogc:PropertyName>
728 </ogc:Function> 714 </ogc:Function>
729 <ogc:Literal>4.0</ogc:Literal> 715 <ogc:Literal>4</ogc:Literal>
730 </ogc:PropertyIsEqualTo> 716 </ogc:PropertyIsEqualTo>
731 <ogc:PropertyIsEqualTo> 717 <ogc:PropertyIsEqualTo>
732 <ogc:Function name="numberFormat"> 718 <ogc:Function name="numberFormat">
733 <ogc:Literal>0.0</ogc:Literal> 719 <ogc:Literal>0.0</ogc:Literal>
734 <ogc:PropertyName>height</ogc:PropertyName> 720 <ogc:PropertyName>height</ogc:PropertyName>
735 </ogc:Function> 721 </ogc:Function>
736 <ogc:Literal>4.5</ogc:Literal> 722 <ogc:Literal>4.5</ogc:Literal>
737 </ogc:PropertyIsEqualTo> 723 </ogc:PropertyIsEqualTo>
738 <ogc:PropertyIsEqualTo> 724 <ogc:PropertyIsEqualTo>
739 <ogc:Function name="numberFormat"> 725 <ogc:Function name="numberFormat">
740 <ogc:Literal>0.0</ogc:Literal> 726 <ogc:Literal>0.0</ogc:Literal>
741 <ogc:PropertyName>height</ogc:PropertyName> 727 <ogc:PropertyName>height</ogc:PropertyName>
742 </ogc:Function> 728 </ogc:Function>
743 <ogc:Literal>5.0</ogc:Literal> 729 <ogc:Literal>5</ogc:Literal>
744 </ogc:PropertyIsEqualTo> 730 </ogc:PropertyIsEqualTo>
745 <ogc:PropertyIsEqualTo> 731 <ogc:PropertyIsEqualTo>
746 <ogc:Function name="numberFormat"> 732 <ogc:Function name="numberFormat">
747 <ogc:Literal>0.0</ogc:Literal> 733 <ogc:Literal>0.0</ogc:Literal>
748 <ogc:PropertyName>height</ogc:PropertyName> 734 <ogc:PropertyName>height</ogc:PropertyName>
749 </ogc:Function> 735 </ogc:Function>
750 <ogc:Literal>5.5</ogc:Literal> 736 <ogc:Literal>5.5</ogc:Literal>
751 </ogc:PropertyIsEqualTo> 737 </ogc:PropertyIsEqualTo>
752 <ogc:PropertyIsEqualTo> 738 <ogc:PropertyIsEqualTo>
753 <ogc:Function name="numberFormat"> 739 <ogc:Function name="numberFormat">
754 <ogc:Literal>0.0</ogc:Literal> 740 <ogc:Literal>0.0</ogc:Literal>
755 <ogc:PropertyName>height</ogc:PropertyName> 741 <ogc:PropertyName>height</ogc:PropertyName>
756 </ogc:Function> 742 </ogc:Function>
757 <ogc:Literal>6.0</ogc:Literal> 743 <ogc:Literal>6</ogc:Literal>
758 </ogc:PropertyIsEqualTo> 744 </ogc:PropertyIsEqualTo>
759 <ogc:PropertyIsEqualTo> 745 <ogc:PropertyIsEqualTo>
760 <ogc:Function name="numberFormat"> 746 <ogc:Function name="numberFormat">
761 <ogc:Literal>0.0</ogc:Literal> 747 <ogc:Literal>0.0</ogc:Literal>
762 <ogc:PropertyName>height</ogc:PropertyName> 748 <ogc:PropertyName>height</ogc:PropertyName>
763 </ogc:Function> 749 </ogc:Function>
764 <ogc:Literal>6.5</ogc:Literal> 750 <ogc:Literal>6.5</ogc:Literal>
765 </ogc:PropertyIsEqualTo> 751 </ogc:PropertyIsEqualTo>
766 <ogc:PropertyIsEqualTo> 752 <ogc:PropertyIsEqualTo>
767 <ogc:Function name="numberFormat"> 753 <ogc:Function name="numberFormat">
768 <ogc:Literal>0.0</ogc:Literal> 754 <ogc:Literal>0.0</ogc:Literal>
769 <ogc:PropertyName>height</ogc:PropertyName> 755 <ogc:PropertyName>height</ogc:PropertyName>
770 </ogc:Function> 756 </ogc:Function>
771 <ogc:Literal>7.0</ogc:Literal> 757 <ogc:Literal>7</ogc:Literal>
772 </ogc:PropertyIsEqualTo> 758 </ogc:PropertyIsEqualTo>
773 <ogc:PropertyIsEqualTo> 759
774 <ogc:Function name="numberFormat">
775 <ogc:Literal>0.0</ogc:Literal>
776 <ogc:PropertyName>height</ogc:PropertyName>
777 </ogc:Function>
778 <ogc:Literal>7.5</ogc:Literal>
779 </ogc:PropertyIsEqualTo>
780 </ogc:Or> 760 </ogc:Or>
781 </ogc:Filter> 761 </ogc:Filter>
782 <se:MaxScaleDenominator>5e3</se:MaxScaleDenominator> 762 <se:MaxScaleDenominator>5e3</se:MaxScaleDenominator>
783 <se:LineSymbolizer> 763 <se:LineSymbolizer>
784 <se:Stroke> 764 <se:Stroke>
787 <ogc:Function name="Recode"> 767 <ogc:Function name="Recode">
788 <ogc:Function name="numberFormat"> 768 <ogc:Function name="numberFormat">
789 <ogc:Literal>0.0</ogc:Literal> 769 <ogc:Literal>0.0</ogc:Literal>
790 <ogc:PropertyName>height</ogc:PropertyName> 770 <ogc:PropertyName>height</ogc:PropertyName>
791 </ogc:Function> 771 </ogc:Function>
792 <ogc:Literal>1.0</ogc:Literal> 772 <ogc:Literal>1</ogc:Literal>
793 <ogc:Literal>#ff00dd</ogc:Literal> 773 <ogc:Literal>#ff00dd</ogc:Literal>
794 <ogc:Literal>1.5</ogc:Literal> 774 <ogc:Literal>1.5</ogc:Literal>
795 <ogc:Literal>#fb08b6</ogc:Literal> 775 <ogc:Literal>#fb209e</ogc:Literal>
796 <ogc:Literal>1.7</ogc:Literal> 776 <ogc:Literal>1.7</ogc:Literal>
797 <ogc:Literal>#f81090</ogc:Literal> 777 <ogc:Literal>#f92c85</ogc:Literal>
798 <ogc:Literal>1.9</ogc:Literal> 778 <ogc:Literal>1.9</ogc:Literal>
799 <ogc:Literal>#f5196a</ogc:Literal> 779 <ogc:Literal>#f7396c</ogc:Literal>
800 <ogc:Literal>2.1</ogc:Literal> 780 <ogc:Literal>2.1</ogc:Literal>
801 <ogc:Literal>#f22144</ogc:Literal> 781 <ogc:Literal>#f54652</ogc:Literal>
802 <ogc:Literal>2.3</ogc:Literal> 782 <ogc:Literal>2.3</ogc:Literal>
803 <ogc:Literal>#f03326</ogc:Literal> 783 <ogc:Literal>#f45239</ogc:Literal>
804 <ogc:Literal>2.5</ogc:Literal> 784 <ogc:Literal>2.5</ogc:Literal>
805 <ogc:Literal>#f25f20</ogc:Literal> 785 <ogc:Literal>#f25f20</ogc:Literal>
806 <ogc:Literal>2.7</ogc:Literal> 786 <ogc:Literal>2.7</ogc:Literal>
807 <ogc:Literal>#f38b1a</ogc:Literal> 787 <ogc:Literal>#e46f1f</ogc:Literal>
808 <ogc:Literal>2.9</ogc:Literal> 788 <ogc:Literal>2.9</ogc:Literal>
809 <ogc:Literal>#f5b814</ogc:Literal> 789 <ogc:Literal>#d67e1e</ogc:Literal>
810 <ogc:Literal>3.1</ogc:Literal> 790 <ogc:Literal>3.1</ogc:Literal>
811 <ogc:Literal>#f7e40e</ogc:Literal> 791 <ogc:Literal>#c88e1e</ogc:Literal>
812 <ogc:Literal>3.3</ogc:Literal> 792 <ogc:Literal>3.3</ogc:Literal>
813 <ogc:Literal>#e2f30e</ogc:Literal> 793 <ogc:Literal>#bb9e1d</ogc:Literal>
814 <ogc:Literal>3.5</ogc:Literal> 794 <ogc:Literal>3.5</ogc:Literal>
815 <ogc:Literal>#b6e414</ogc:Literal> 795 <ogc:Literal>#adae1c</ogc:Literal>
816 <ogc:Literal>4.0</ogc:Literal> 796 <ogc:Literal>4</ogc:Literal>
817 <ogc:Literal>#8ad51a</ogc:Literal> 797 <ogc:Literal>#8ad51a</ogc:Literal>
818 <ogc:Literal>4.5</ogc:Literal> 798 <ogc:Literal>4.5</ogc:Literal>
819 <ogc:Literal>#5ec620</ogc:Literal> 799 <ogc:Literal>#76b540</ogc:Literal>
820 <ogc:Literal>5.0</ogc:Literal> 800 <ogc:Literal>5</ogc:Literal>
821 <ogc:Literal>#32b726</ogc:Literal> 801 <ogc:Literal>#639566</ogc:Literal>
822 <ogc:Literal>5.5</ogc:Literal> 802 <ogc:Literal>5.5</ogc:Literal>
823 <ogc:Literal>#249a49</ogc:Literal> 803 <ogc:Literal>#4f758d</ogc:Literal>
824 <ogc:Literal>6.0</ogc:Literal> 804 <ogc:Literal>6</ogc:Literal>
825 <ogc:Literal>#207977</ogc:Literal> 805 <ogc:Literal>#3b54b3</ogc:Literal>
826 <ogc:Literal>6.5</ogc:Literal> 806 <ogc:Literal>6.5</ogc:Literal>
827 <ogc:Literal>#1c57a4</ogc:Literal> 807 <ogc:Literal>#2834d9</ogc:Literal>
828 <ogc:Literal>7.0</ogc:Literal> 808 <ogc:Literal>7</ogc:Literal>
829 <ogc:Literal>#1835d1</ogc:Literal>
830 <ogc:Literal>7.5</ogc:Literal>
831 <ogc:Literal>#1414ff</ogc:Literal> 809 <ogc:Literal>#1414ff</ogc:Literal>
810
832 </ogc:Function> 811 </ogc:Function>
833 </se:SvgParameter> 812 </se:SvgParameter>
834 </se:Stroke> 813 </se:Stroke>
835 </se:LineSymbolizer> 814 </se:LineSymbolizer>
836 </se:Rule> 815 </se:Rule>
849 <ogc:Function name="Recode"> 828 <ogc:Function name="Recode">
850 <ogc:Function name="numberFormat"> 829 <ogc:Function name="numberFormat">
851 <ogc:Literal>0.0</ogc:Literal> 830 <ogc:Literal>0.0</ogc:Literal>
852 <ogc:PropertyName>height</ogc:PropertyName> 831 <ogc:PropertyName>height</ogc:PropertyName>
853 </ogc:Function> 832 </ogc:Function>
854 <ogc:Literal>1.0</ogc:Literal><ogc:Literal>1.0</ogc:Literal> 833 <ogc:Literal>1</ogc:Literal><ogc:Literal>1</ogc:Literal>
855 <ogc:Literal>1.5</ogc:Literal><ogc:Literal>1.5</ogc:Literal> 834 <ogc:Literal>1.5</ogc:Literal><ogc:Literal>1.5</ogc:Literal>
856 <ogc:Literal>1.7</ogc:Literal><ogc:Literal>1.7</ogc:Literal> 835 <ogc:Literal>1.7</ogc:Literal><ogc:Literal>1.7</ogc:Literal>
857 <ogc:Literal>1.9</ogc:Literal><ogc:Literal>1.9</ogc:Literal> 836 <ogc:Literal>1.9</ogc:Literal><ogc:Literal>1.9</ogc:Literal>
858 <ogc:Literal>2.1</ogc:Literal><ogc:Literal>2.1</ogc:Literal> 837 <ogc:Literal>2.1</ogc:Literal><ogc:Literal>2.1</ogc:Literal>
859 <ogc:Literal>2.3</ogc:Literal><ogc:Literal>2.3</ogc:Literal> 838 <ogc:Literal>2.3</ogc:Literal><ogc:Literal>2.3</ogc:Literal>
861 <ogc:Literal>2.7</ogc:Literal><ogc:Literal>2.7</ogc:Literal> 840 <ogc:Literal>2.7</ogc:Literal><ogc:Literal>2.7</ogc:Literal>
862 <ogc:Literal>2.9</ogc:Literal><ogc:Literal>2.9</ogc:Literal> 841 <ogc:Literal>2.9</ogc:Literal><ogc:Literal>2.9</ogc:Literal>
863 <ogc:Literal>3.1</ogc:Literal><ogc:Literal>3.1</ogc:Literal> 842 <ogc:Literal>3.1</ogc:Literal><ogc:Literal>3.1</ogc:Literal>
864 <ogc:Literal>3.3</ogc:Literal><ogc:Literal>3.3</ogc:Literal> 843 <ogc:Literal>3.3</ogc:Literal><ogc:Literal>3.3</ogc:Literal>
865 <ogc:Literal>3.5</ogc:Literal><ogc:Literal>3.5</ogc:Literal> 844 <ogc:Literal>3.5</ogc:Literal><ogc:Literal>3.5</ogc:Literal>
866 <ogc:Literal>4.0</ogc:Literal><ogc:Literal>4.0</ogc:Literal> 845 <ogc:Literal>4</ogc:Literal><ogc:Literal>4</ogc:Literal>
867 <ogc:Literal>4.5</ogc:Literal><ogc:Literal>4.5</ogc:Literal> 846 <ogc:Literal>4.5</ogc:Literal><ogc:Literal>4.5</ogc:Literal>
868 <ogc:Literal>5.0</ogc:Literal><ogc:Literal>5.0</ogc:Literal> 847 <ogc:Literal>5</ogc:Literal><ogc:Literal>5</ogc:Literal>
869 <ogc:Literal>5.5</ogc:Literal><ogc:Literal>5.5</ogc:Literal> 848 <ogc:Literal>5.5</ogc:Literal><ogc:Literal>5.5</ogc:Literal>
870 <ogc:Literal>6.0</ogc:Literal><ogc:Literal>6.0</ogc:Literal> 849 <ogc:Literal>6</ogc:Literal><ogc:Literal>6</ogc:Literal>
871 <ogc:Literal>6.5</ogc:Literal><ogc:Literal>6.5</ogc:Literal> 850 <ogc:Literal>6.5</ogc:Literal><ogc:Literal>6.5</ogc:Literal>
872 <ogc:Literal>7.0</ogc:Literal><ogc:Literal>7.0</ogc:Literal> 851 <ogc:Literal>7</ogc:Literal><ogc:Literal>7</ogc:Literal>
873 <ogc:Literal>7.5</ogc:Literal><ogc:Literal>7.5</ogc:Literal> 852
874 </ogc:Function> 853 </ogc:Function>
875 </se:Label> 854 </se:Label>
876 <se:LabelPlacement> 855 <se:LabelPlacement>
877 <se:LinePlacement> 856 <se:LinePlacement>
878 <se:PerpendicularOffset>5</se:PerpendicularOffset> 857 <se:PerpendicularOffset>5</se:PerpendicularOffset>
895 </StyledLayerDescriptor> 874 </StyledLayerDescriptor>
896 ` 875 `
897 876
898 const classBreaksConfig = `1:#ff00dd,1.5,1.7,1.9,2.1,2.3,` + 877 const classBreaksConfig = `1:#ff00dd,1.5,1.7,1.9,2.1,2.3,` +
899 `2.5:#f25f20,2.7,2.9,3.1,3.3,3.5,` + 878 `2.5:#f25f20,2.7,2.9,3.1,3.3,3.5,` +
900 `4:#8ad51a,4.5,5,5.5,6,6.5,7.5:#1414ff` 879 `4:#8ad51a,4.5,5,5.5,6,6.5,` +
880 `7:#1414ff`
901 881
902 func TestTemplate(t *testing.T) { 882 func TestTemplate(t *testing.T) {
903 883
904 ccs, err := parseColorClasses(classBreaksConfig) 884 ccs, err := parseColorClasses(classBreaksConfig)
905 if err != nil { 885 if err != nil {
906 t.Fatalf("parsing color config failed: %v", err) 886 t.Fatalf("parsing color config failed: %v", err)
907 } 887 }
908
909 /*
910 for i := range ccs {
911 fmt.Printf("%.1f #%02x%02x%02x\n",
912 ccs[i].value,
913 ccs[i].color.R,
914 ccs[i].color.G,
915 ccs[i].color.B)
916 }
917 */
918 888
919 cbs := ccs.toClassBreaks() 889 cbs := ccs.toClassBreaks()
920 890
921 tmpl, err := template.New("test").Parse(sldTmplTxt) 891 tmpl, err := template.New("test").Parse(sldTmplTxt)
922 if err != nil { 892 if err != nil {