forked from mapfish/mapfish-print-doc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
styles.html
439 lines (382 loc) · 27.8 KB
/
styles.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>MapFish Print 3 Documentation - Vector Styles</title>
<link rel="stylesheet" href="css/sphinx_rtd_theme.css" type="text/css" />
<link rel="stylesheet" href="css/readthedocs-doc-embed.css" type="text/css" />
<link rel="stylesheet" href="css/custom.css" type="text/css" />
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="index.html" class="icon icon-home"> MapFish Print 3</a>
</div>
<div
class="wy-menu wy-menu-vertical"
data-spy="affix"
role="navigation"
aria-label="main navigation"
>
<ul class="current">
<li class="toctree-l1 ">
<a class="reference internal " href="index.html">Introduction</a>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="jasperreports.html"
>JasperReports</a
>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="api.html">Web API</a>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="attributes.html">Attributes</a>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="configuration.html"
>Configuration</a
>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="layers.html">Map Layers</a>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="processors.html">Processors</a>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="fileloaders.html">File-Loaders</a>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="outputformats.html"
>Output Formats</a
>
</li>
<li class="toctree-l1 current">
<a class="reference internal current" href="styles.html">Styles</a>
<ul>
<li class="toctree-l2">
<a class="reference internal" href="#mapfishJsonParser">mapfishJsonParser</a>
<li class="toctree-l2">
<a class="reference internal" href="#sldParser">sldParser</a>
</li>
</ul>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="tableimages.html"
>Images in tables</a
>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="download.html">Download</a>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="docker.html">Docker</a>
</li>
<li class="toctree-l1 ">
<a class="reference internal " href="scaling.html">Horizontal scaling</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="top navigation">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="index.html">MapFish Print 3</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="index.html">Docs</a> »</li>
<li>Vector Styles</li>
<li class="wy-breadcrumbs-aside">
<a href="https://github.com/mapfish/mapfish-print" class="fa fa-github">
mapfish/mapfish-print</a
>
</li>
</ul>
<hr />
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<h1>Vector Styles</h1>
<div class="section"><p>Styles for vector layers.</p>
</div>
<div class="section" id="mapfishJsonParser">
<h1>mapfishJsonParser<a class="headerlink" href="#mapfishJsonParser" title="Permalink to this headline">¶</a></h1>
<div class="block">Supports all style format.
<p>This style parser support two versions of JSON and SLD formatting. Both versions use the same
parameter names for configuring the values of the various properties of the style but the layout
differs between the two and version 2 is more flexible and powerful than version 1.
</p><h2 id="stylev1">Mapfish JSON Style Version 1 <a shape="rect" href="#stylev1" class="headerlink">¶</a></h2><p>Version 1 is compatible with mapfish print <= v2 and is based on the OpenLayers v2 styling.
The layout is as follows:
</p><div class="highlight"><pre> {<br> "version": "1",<br> "styleProperty": "_gx_style",<br> "1": {<br> "fillColor": "#FF0000",<br> "fillOpacity": 0,<br> "rotation": "30",<br><br> "externalGraphic": "mark.png"<br> "graphicName": "circle",<br> "graphicOpacity": 0.4,<br> "pointRadius": 5,<br><br> "strokeColor": "#FFA829",<br> "strokeOpacity": 1,<br> "strokeWidth": 5,<br> "strokeLinecap": "round",<br> "strokeLinejoin": "round"<br> "strokeDashstyle": "dot",<br><br> "fontColor": "#000000",<br> "fontFamily": "sans-serif",<br> "fontSize": "12px",<br> "fontStyle": "normal",<br> "fontWeight": "bold",<br> "haloColor": "#123456",<br> "haloOpacity": "0.7",<br> "haloRadius": "3.0",<br> "label": "${name}",<br> "labelAlign": "cm",<br> "labelRotation": "45",<br> "labelXOffset": "-25.0",<br> "labelYOffset": "-35.0"<br> }<br> }</pre></div><h2 id="stylev2">Mapfish JSON Style Version 2 <a shape="rect" href="#stylev2" class="headerlink">¶</a></h2><p>Version 2 uses the same property names as version 1 but has a different structure. The layout
is as follows:
</p><div class="highlight"><pre> {<br> "version": "2",<br> // shared values can be declared here (at top level)<br> // and used in form ${constName} later in json<br> "val1": "#FFA829",<br> // default values for properties can be defined here<br> " strokeDashstyle": "dot"<br> "[population > 300]": {<br> // default values for current rule can be defined here<br> // they will override default values defined at<br> // higher level<br> "rotation": "30",<br><br> //min and max scale denominator are optional<br> "maxScale": 1000000,<br> "minScale": 100000,<br> "symbolizers": [{<br> // values defined in symbolizer will override defaults<br> "type": "point",<br> "fillColor": "#FF0000",<br> "fillOpacity": 0,<br> "rotation": "30",<br> "externalGraphic": "mark.png",<br><br> "graphicName": "circle",<br> "graphicOpacity": 0.4,<br> "pointRadius": 5,<br><br> "strokeColor": "${val1}",<br> "strokeOpacity": 1,<br> "strokeWidth": 5,<br> "strokeLinecap": "round",<br> "strokeLinejoin": "round"<br> "strokeDashstyle": "dot"<br> }, {<br> "type": "line",<br> "strokeColor": "${val1}",<br> "strokeOpacity": 1,<br> "strokeWidth": 5,<br> "strokeLinecap": "round",<br> "strokeDashstyle": "dot"<br> }, {<br> "type": "polygon",<br> "fillColor": "#FF0000",<br> "fillOpacity": 0,<br><br> "strokeColor": "${val1}",<br> "strokeOpacity": 1,<br> "strokeWidth": 5,<br> "strokeLinecap": "round",<br> "strokeDashstyle": "dot"<br> }, {<br> "type": "text",<br> "fontColor": "#000000",<br> "fontFamily": "sans-serif",<br> "fontSize": "12px",<br> "fontStyle": "normal",<br> "fontWeight": "bold",<br> "haloColor": "#123456",<br> "haloOpacity": "0.7",<br> "haloRadius": "3.0",<br> "label": "[name]",<br> "fillColor": "#FF0000",<br> "fillOpacity": 0,<br> "labelAlign": "cm",<br> "labelRotation": "45",<br> "labelXOffset": "-25.0",<br> "labelYOffset": "-35.0"<br> }<br> ]}<br> }</pre></div><p>As illustrated above the style consists of:
</p><ul><li>The version number (2) (required)
</li><li>Common values which can be referenced in symbolizer property values.(optional)
<p>Values can be referenced in the value of a property with the pattern: ${valName}
</p><p>Value names can only contain numbers, characters, _ or -
</p><p>Values do not have to be the full property they will be interpolated. For example:
<code>The value is ${val}</code></p></li><li>Defaults property definitions(optional):
<p>In order to reduce duplication and keep the style definitions small, default values can
be specified. The default values in the root (style level) will be used in all symbolizers
if the value is not defined. The style level default will apply to all symbolizers defined
in the system.
</p><p>The only difference between a value and a default is that the default has a well known
name, therefore defaults can also be used as values.
</p></li><li>All the styling rules (At least one is required)
<p>A styling rule has a key which is the filter which selects the features that the rule
will be used to draw and the rule definition object.
</p><p>The filter is either <code>*</code> or an <a shape="rect" href="http://docs.geoserver.org/stable/en/user/filter/ecql_reference.html#filter-ecql-reference">
ECQL Expression</a>) surrounded by square brackets. For example: [att < 23].
</p><p><em>WARNING:</em> At the moment DWITHIN and BEYOND spatial functions take a unit
parameter. However it is ignored by geotools and the distance is always in the crs of the
geometry projection. The rule definition is as follows:
</p><ul><li>Default property values (optional):
<p>Each rule can also have defaults. If the style and the rule have a default for the
same property the rule will override the style default. All defaults can be (of
course) overridden by a value in a symbolizer.
</p></li><li>minScale (optional)
<p>The minimum scale that the rule should evaluate to true
</p></li><li>maxScale (optional)
<p>The maximum scale that the rule should evaluate to true
</p></li><li>An array of symbolizers. (at least one required).
<p>A symbolizer must have a type property (point, line, polygon, text) which
indicates the type of symbolizer and it has the attributes for that type of
symbolizer. All values have defaults so it is possible to define a symbolizer as with
only the type property. The only exception is that the "text" symbolizer needs a
label property.
</p></li></ul></li></ul><h2 id="config">Configuration Elements <a shape="rect" href="#config" class="headerlink">¶</a></h2>
The items in the list below are the properties that can be set on the different symbolizers. In
brackets list the symbolizers the values can apply to.
<p>Most properties can be static values or ECQL expressions. If the property has <code>[ ]</code>
around the property value then it will be interpreted as an ECQL expression. Otherwise it is
assumed to be static text. If you need static text that start and ends with <code>[ ]</code> then
you will have to enter: <code>['propertyValue']</code> (where propertyValue start and ends with
<code>[ ]</code>.
</p><p>The items below with (ECQL) can have ECQL expressions.
</p><ul><li><strong>fillColor</strong> (ECQL) - (polygon, point, text) The color used to fill the point
graphic, polygon or text.
</li><li><strong>fillOpacity</strong> (ECQL) - (polygon, point, text) The opacity used when fill the
point graphic, polygon or text.
</li><li><strong>rotation</strong> (ECQL) - (point) The rotation of the point graphic
</li><li><strong>externalGraphic</strong> - (point) one of the two options for declaring the point
graphic to use. This can be a URL to the icon to use or, if just a string it will be
assumed to refer to a file in the configuration directory (or subdirectory). Only files in
the configuration directory (or subdirectory) will be allowed.
</li><li><strong>graphicName</strong> (ECQL) - (point) one of the two options for declaring the
point graphic to use. This is the default and will be a square if not specified. The option
are any of the Geotools Marks.
<p>Geotools has by default 3 types of marks:
</p><ul><li>WellKnownMarks: cross, star, triangle, arrow, X, hatch, square
</li><li>ShapeMarks: shape://vertline, shape://horline, shape://slash, shape://backslash,
shape://dot, shape://plus, shape://times, shape://oarrow, shape://carrow,
shape://coarrow, shape://ccarrow
</li><li>TTFMarkFactory: ttf://fontName#code (where fontName is a TrueType font and the code
is the code number of thecharacter to render for the point.
</li></ul></li><li><strong>graphicOpacity</strong> (ECQL) - (point) the opacity to use when drawing the point
graphic
</li><li><strong>pointRadius</strong> (ECQL) - (point) the size at which to draw the point graphic
</li><li><strong>strokeColor</strong> (ECQL) - (line, point, polygon) the color to use when drawing
a line or the outline of a polygon or point graphic
</li><li><strong>strokeOpacity</strong> (ECQL) - (line, point, polygon) the opacity to use when
drawing the line/stroke
</li><li><strong>strokeWidth</strong> (ECQL) - (line, point, polygon) the widh of the line/stroke
</li><li><strong>strokeLinecap</strong> (ECQL) - (line, point, polygon) the style used when drawing
the end of a line.
<p>Options: butt (sharp square edge), round (rounded edge), and square (slightly elongated
square edge). Default is butt
</p></li><li><strong>strokeLinejoin</strong> (ECQL) - (line, polygon) the style to controls how line
strings should be joined together.
<p>Options: arcs, bevel, miter, miter-clip, round, see the SGV documentation about
stroke-linejoin For more information. Default is miter
</p></li><li><strong>strokeDashstyle</strong> - (line, point, polygon) A string describing how to draw
the line or an array of floats describing the line lengths and space lengths:
<ul><li>dot - translates to dash array: [0.1, 2 * strokeWidth]
</li><li>dash - translates to dash array: [2 * strokeWidth, 2 * strokeWidth]
</li><li>dashdot - translates to dash array: [3 * strokeWidth, 2 * strokeWidth, 0.1, 2 *
strokeWidth]
</li><li>longdash - translates to dash array: [4 * strokeWidth, 2 * strokeWidth]
</li><li>longdashdot - translates to dash array: [5 * strokeWidth, 2 * strokeWidth, 0.1, 2 *
strokeWidth]
</li><li>{string containing spaces to delimit array elements} - Example: [1 2 3 1 2]
</li></ul></li><li><strong>strokeDashoffset</strong> - (line, point, polygon) A number representing where to
start the dash.
</li><li><strong>fontColor</strong> (ECQL) - (text) the color of the text drawn
</li><li><strong>fontFamily</strong> (ECQL) - (text) the font of the text drawn
</li><li><strong>fontSize</strong> (ECQL) - (text) the font size of the text drawn
</li><li><strong>fontStyle</strong> (ECQL) - (text) the font style of the text drawn
</li><li><strong>fontWeight</strong> (ECQL) - (text) the font weight of the text drawn
</li><li><strong>haloColor</strong> (ECQL) - (text) the color of the halo around the text
</li><li><strong>haloOpacity</strong> (ECQL) - (text) the opacity of the halo around the text
</li><li><strong>haloRadius</strong> (ECQL) - (text) the radius of the halo around the text
</li><li><strong>label</strong> (ECQL) - (text) the expression used to create the label e. See the
section on labeling for more details
</li><li><strong>labelAlign</strong> - (Point Placement) the indicator of how to align the text with
respect to the geometry. This property must have 2 characters, the x-align and the y-align.
<p>X-Align options:
</p><ul><li>l - align to the left of the geometric center
</li><li>c - align on the center of the geometric center
</li><li>r - align to the right of the geometric center
</li></ul><p>Y-Align options:
</p><ul><li>b - align to the bottom of the geometric center
</li><li>m - align on the middle of the geometric center
</li><li>t - align to the top of the geometric center
</li></ul></li><li><strong>labelRotation</strong> (ECQL) - (Point Placement) the rotation of the label
</li><li><strong>labelXOffset</strong> (ECQL) - (Point Placement) the amount to offset the label
along the x axis. positive number offset to the right
</li><li><strong>labelYOffset</strong> (ECQL) - (Point Placement) the amount to offset the label
along the y axis. positive number offset to the top of the printing
</li><li><strong>labelAnchorPointX</strong> (ECQL) - (Point Placement) The point along the x axis
that the label is started at anchored). Offset and rotation is relative to this point. Only
one of labelAnchorPointX/Y or labelAlign will be respected, since they are both ways of
defining the anchor Point
</li><li><strong>labelAnchorPointY</strong> (ECQL) - (Point Placement) The point along the y axis
that the label is started at (anchored). Offset and rotation is relative to this point.
Only one of labelAnchorPointX/Y or labelAlign will be respected, since they are both ways
of defining the anchor Point
</li><li><strong>labelPerpendicularOffset</strong> (ECQL) - (Line Placement) If this property is
defined it will be assumed that the geometry is a line and this property defines how far
from the center of the line the label should be drawn.
</li></ul><h2 id="labels">Labeling: <a shape="rect" href="#labels" class="headerlink">¶</a></h2><p>Labeling in this style format is done by defining a text symbolizer ("type": "text"). All text
symbolizers consist of:
</p><ul><li><a shape="rect" href="#labelproperties">Label Property</a></li><li><a shape="rect" href="#haloproperties">Halo Properties</a></li><li><a shape="rect" href="#otherproperties">Font/weight/style/color/opacity</a></li><li><a shape="rect" href="#placementproperties">Placement Properties</a></li><li><a shape="rect" href="#vendoroptions">Vendor Options</a></li></ul><h3 id="labelproperties">Label Property <a shape="rect" href="#labelproperties" class="headerlink">¶</a></h3><p>The label property defines what label will be drawn for a given feature. The value is either a
string which will be the static label for all features that the symbolizer will be drawn on or a
string surrounded by [] which indicates that it is an ECQL Expression. Examples:
</p><ul><li>Static label
</li><li>[attributeName]
</li><li>['Static Label Again']
</li><li>[5]
</li><li>5
</li><li>env('java.home')
</li><li>centroid(geomAtt)
</li></ul><h3 id="haloproperties">Halo Properties <a shape="rect" href="#haloproperties" class="headerlink">¶</a></h3><p>A halo is a space around the drawn label text that is color (using the halo properties). A
label with a halo is like the drawn label text with a buffer around the label text drawn using
the halo properties. This allows the label to be clearly visible regardless of the background.
For example if the text is black and the halo is with, then the text will always be readable
thanks to the white buffer around the label text.
</p><h3 id="otherproperties">Font/weight/style/color/opacity <a shape="rect" href="#otherproperties" class="headerlink">¶</a></h3><p>The Font/weight/style/color/opacity properties define how the label text is drawn. They are
for the most part equivalent to the similarly named css and SLD properties.
</p><h3 id="placementproperties">Placement Properties <a shape="rect" href="#placementproperties" class="headerlink">¶</a></h3><p>An important part of defining a text symbolizer is defining where the text/label will be
drawn. The placement properties are used for this purpose. There are two types of placements,
Point and Line placement and <em>only one</em> type of placement can be used. The type of
placement is determined by inspecting the properties in the text symbolizer and if the
<em>labelPerpendicularOffset</em> property is defined then a line placement will be created for
the text symbolizer.
</p><p>It is important to realize that since only one type of placement can be used, an error will be
reported if <em>labelPerpendicularOffset</em> is defined in the text symbolizer along with
<em>any</em> of the point placement properties.
</p><p><strong>Point Placement</strong></p><p>Point placement defines an <em>anchor point</em> which is the point to draw the text relative
to. For example an anchor point of 0.5, 0.5 ("labelAnchorPointX": "0.5", "labelAnchorPointY":
"0.5") would position the start of the label at the center of the geometry.
</p><p>After <em>anchor point</em>, comes <em>displacement</em> displacement defines the distance
from the anchor point to start the label. The combination of the two values determines the final
location of the label.
</p><p>Lastly, there is a label rotation which defines the orientation of the label.
</p><p>There are two ways to define the anchor point, either the <em>labelAnchorPointX/Y</em>
properties are set or the <em>labelAlign</em> property is set. If both are defined then the
<em>labelAlign</em> will be ignored.
</p><h3 id="vendoroptions">Vendor Options <a shape="rect" href="#vendoroptions" class="headerlink">¶</a></h3><p>For text symbolizers the following vendor options are available:
</p><ul><li><strong>allowOverruns</strong> (false): When false does not allow labels on lines to get
beyond the beginning/end of the line. By default a partial overrun is tolerated, set to
false to disallow it.
</li><li><strong>autoWrap</strong> (400): Number of pixels are which a long label should be split
into multiple lines. Works on all geometries, on lines it is mutually exclusive with the
followLine option.
</li><li><strong>conflictResolution</strong> (true): Enables conflict resolution (default, true)
meaning no two labels will be allowed to overlap. Symbolizers with conflict resolution off
are considered outside of the conflict resolution game, they don’t reserve area and can
overlap with other labels.
</li><li><strong>followLine</strong> (true): When true activates curved labels on linear geometries.
The label will follow the shape of the current line, as opposed to being drawn a tangent
straight line
</li><li><strong>goodnessOfFit</strong> (90): Sets the percentage of the label that must sit inside
the geometry to allow drawing the label. Works only on polygons.
</li><li><strong>group</strong> (false): If true, geometries with the same labels are grouped and
considered a single entity to be labeled. This allows to avoid or control repeated labels.
</li><li><strong>maxDisplacement</strong> (400): The distance, in pixel, a label can be displaced
from its natural position in an attempt to find a position that does not conflict with
already drawn labels.
</li><li><strong>spaceAround</strong> (50): The minimum distance between two labels, in pixels.
</li></ul><p>Example
</p><div class="highlight"><pre> {<br> "version": "2",<br> "*": {<br> "symbolizers": [{<br> "type": "text",<br> "fontColor": "#000000",<br> "label": "[name]",<br> "goodnessOfFit": 0.1,<br> "spaceAround": 10<br> }<br> ]}<br> }</pre></div><p>For more information, please refer to the <a shape="rect" href="http://docs.geotools.org/latest/userguide/library/render/style.html#textsymbolizer">GeoTools
documentation</a>.
</p><h2>ECQL references</h2><ul><li><a shape="rect" href="http://docs.geoserver.org/stable/en/user/filter/ecql_reference.html#ecql-expr">
http://docs.geoserver.org/stable/en/user/filter/ecql_reference.html#ecql-expr</a></li><li><a shape="rect" href="http://udig.refractions.net/files/docs/latest/user/Constraint%20Query%20Language.html">
http://udig.refractions.net/files/docs/latest/user/Constraint%20Query%20Language.html</a></li><li><a shape="rect" href="http://docs.geoserver.org/stable/en/user/filter/function_reference.html#filter-function-reference">
http://docs.geoserver.org/stable/en/user/filter/function_reference.html#filter-function-reference</a></li><li><a shape="rect" href="http://docs.geotools.org/stable/userguide/library/cql/ecql.html">
http://docs.geotools.org/stable/userguide/library/cql/ecql.html</a></li><li><a shape="rect" href="http://docs.geoserver.org/latest/en/user/tutorials/cql/cql_tutorial.html">
http://docs.geoserver.org/latest/en/user/tutorials/cql/cql_tutorial.html</a></li></ul></div> </div>
<div class="section" id="sldParser">
<h1>sldParser<a class="headerlink" href="#sldParser" title="Permalink to this headline">¶</a></h1>
<div class="block">Basic implementation for loading and parsing an SLD style.</div> </div>
</div>
</div>
<footer>
<hr />
<div role="contentinfo">
<p>
<a href="https://www.camptocamp.com/geospatial_solutions" target="_blank" rel="noopener"
>Camptocamp</a
>
<br />
<span class="commit">
Revision
<code
><a
href="https://github.com/mapfish/mapfish-print/commit/d6145343031f75e02a79141e1b4bfe152161b262"
target="_blank"
>d6145343</a
></code
>.
</span>
</p>
</div>
Theme based on a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">template</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script
type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js"
integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/jquery-migrate/3.4.1/jquery-migrate.min.js"
integrity="sha512-KgffulL3mxrOsDicgQWA11O6q6oKeWcV00VxgfJw4TcM8XRQT8Df9EsrYxDf7tpVpfl3qcYD96BpyPvA4d1FDQ=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
type="text/javascript"
src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.13.6/underscore-min.js"
integrity="sha512-2V49R8ndaagCOnwmj8QnbT1Gz/rie17UouD9Re5WxbzRVUGoftCu5IuqqtAM9+UC3fwfHCSJR1hkzNQh/2wdtg=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script
type="text/javascript"
src="js/theme.js"
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
<script type="text/javascript">
jQuery(function () {
SphinxRtdTheme.StickyNav.enable();
});
</script>
</body>
</html>