deegree3 Rendering Subsystem Requirements
The following table gives a revised and complete overview of all Rendering subsystem requirements. ID scheme is "rd-[g|s]-##" where "g" is for general requirements, "s" for OGC SE/SLD-related requirements. (We might want to add more of those, like "r" for raster-related rendering, "t" for text rendering, "l" for all kinds of renderings along lines ...)
Some cleaning-up might be needed for the discussion items and various references to other requirements.
ID |
Feature |
Minispec |
Status |
Priority (M-S-C-W)(*) |
Discussion |
rd-g01 |
it must be possible to read drawing order from a property |
E.g. for AAA objects must be rendered according to order defined in a special property ignoring the order features are read from a backend |
? |
S |
- |
rd-g02 |
support rendering of complex features |
rendering of complex features – implementation options: simple features with more than one geometry property; real complex features. Using SLD/SE it is possible to define which geometry property should be used for rendering. If XPath expressions are supported renderable geometries can be defined. |
testing |
M |
We should think about if we will support XPath expressions that targets more than one property. This can be usefull if a feature has more than one geometry that should be rendered or more than one property should be used for labeling |
rd-g03 |
support rendering of exceptions in image |
rendering of exceptions in image |
done |
M |
- |
rd-g04 |
allow for / improve configuration of rendering quality |
Rendering quality shall be configurable (e.g. low-mid-high). Layer-specific |
? |
M |
to be clarified |
rd-g05 |
support different rendering backends |
Support for different (better) rendering engines, such as OpenGL. |
? |
C |
Needs some prototyping. |
rd-g06 |
support different quality settings based on geometry type |
Support for different quality levels of point-, line- and polygon rendering – please specify. Especially rendering of small polygons/circles is very poor using standard awt methods. |
? |
? |
- |
rd-g07 |
support anti alias settings based on geometry type |
antialias on a per-layer base for point-, line-, polygon- and text rendering.This means it should be possible for each layer to define if point, lines and polygons should use antialiasing |
testing |
M |
- |
rd-g08 |
improve rendering performance |
rendering performance should be increased (e.g. by selecting a rendering engine) |
in progress |
M |
performance is already increased. Selection of rendering engines is not yet supported. |
rd-g09 |
support different measurements than SE/SLD |
Possible values are: pixel, mapunits, mm (related to map), meter (related to map model) |
testing |
M |
- |
rd-g10 |
support vector output formats |
creating vector graphics as result of a rendering process |
not started |
C |
see also wms-g15 |
rd-g11 |
support cartho diagrams |
better support for cartho-diagrams (read data from SOS; more supported diagram types; extended parameterization of requesting diagrams) – see also deegree2 implementation |
not started |
S |
- |
rd-g12 |
enable creation of complex symbolizers that will be treated as one symbolizer |
Many stylings requires combination of more than one symbolizer. Such a combination must be treated as one symbolizer where each part must be able to consider/control all other contained symbolizers |
? |
S |
- |
rd-g13 |
it should be possible to control all styling parameters and behaviors by feature properties |
- |
? |
M |
- |
rd-g14 |
support SLD 1.0.0 and SE |
- |
testing |
- |
|
|
|||||
rd-r01 |
support se:Geometry |
Is not a rendering requirement. Does apply to data access, instead. |
postponed |
W |
- |
rd-r02 |
support se:Opacity |
Opacity values range from 0 to 1 where 0 is completely transparent and 1 completely opaque. |
done |
M |
- |
rd-r03 |
support se:ChannelSelection |
Channels may be selected from multi-channel raster data by using their name. More information from SE spec, section "ChannelSelection" in chapter "11.5.2 Parameters" |
done |
C |
- |
rd-r04 |
support se:OverlapBehavior |
cf. SE spec, section "OverlapBehavior" in chapter "11.5.2 Parameters" |
delayed |
C |
delayed because current raster API does not allow working with multiple rasters |
rd-r05 |
support se:ColorMap |
cf. SE spec, section "se:ColorMap" in chapter "11.5.2 Parameters" and 11.6.4 Transformation functions (see also deegree2 implementation and deegree3 Filter framework) |
done |
M |
- |
rd-r06 |
support se:ContrastEnhancement |
cf. SE spec, section "ContrastEnhancement" in chapter "11.5.2 Parameters" |
done |
C |
- |
rd-r07 |
support se:ShadedRelief |
cf. SE spec, section "OverlapBehavior" in chapter "11.5.2 Parameters" (see also deegree2 implementation (for BrightnessOnly = FALSE)) |
partially done |
S |
works for BrightnessOnly=false. Current raster API does not allow working with multiple rasters |
rd-r08 |
support se:ImageOutline |
cf. SE spec, section "ImageOutline" in chapter "11.5.2 Parameters" |
done |
C |
- |
|
|||||
rd-l01 |
support for line decorations (as sizeable verctor graphics) |
e.g. arrows at line start-/end-node |
not started |
M |
- |
rd-l02 |
directed signatures |
e.g. arrows along lines |
not started |
M |
- |
rd-l03 |
Definition how line signatures are wrapped at vertices. |
Possible solutions could be ignore overlapping symbols, to remove overlapping symbols, to merge them and/or to adapt them |
not started |
M |
- |
rd-l04 |
It must be possible to define size of of symbols drawn along lines, their color, gap, start gap, vertical distance to line |
- |
testing |
M |
- |
rd-l05 |
Positioning of a symbol along a line must be possible by determining % of line length |
This can be used for example to center a symbol between two vertices or start & end node of a line |
? |
M |
- |
rd-l06 |
Have line patterns with different gaps |
- |
? |
M |
- |
rd-l07 |
a size of 0 and using round line ends must create a circle with r = linewidth/2 |
- |
? |
M |
- |
rd-l08 |
It must be possible to render a lines vertices |
- |
? |
S |
- |
rd-l09 |
redering must support different styles for line border and line fill |
- |
? |
M |
- |
rd-l10 |
Start- and ending symbols must be rotated according to line direction |
- |
? |
M |
- |
rd-l11 |
Start- and ending symbols must be displaceable |
- |
? |
M |
- |
rd-l12 |
It should be possible to set symbol position along a line as percent of a lines length |
e.g. a postion of 0.5 defines that a symbol will be rendered at the center of a line |
? |
M |
- |
rd-l13 |
It must possible to create saw-shaped line with defined size and angle of/between saw segments |
- |
? |
M |
- |
|
|||||
rd-pt01 |
improve auto-positioning |
support for better positioning of symbols (like for text) , layer comprehensive auto-positioning (configurable according to quality) |
not started |
M |
- |
rd-pt02 |
support for vector graphis (SVG, WKT) with definable width/height |
- |
? |
M |
- |
rd-pt03 |
Definition of ancor point and displacement should be possible |
- |
? |
M |
- |
rd-pt04 |
Rotation of symbols around ancor point should be possible |
- |
? |
M |
- |
rd-pt05 |
Rotation of symbols around their center should be possible |
- |
? |
M |
- |
rd-pt06 |
support TTF symbols |
true type font files shall be used for symbol rendering. Single symbols from font file are selected by using the ID. Rendering is configurable with color, size, (as in SE) |
not started |
S |
- |
rd-pt07 |
Symbol positioning using displacement (just one value) and angle should be possible |
For AAA symbol (and text) displacement is not defined as in SLD/SE by using displacment values in x- and y-direction. It is defined by single displacement value and an angle |
? |
C |
- |
|
|||||
rd-pol01 |
support fill pattern specification |
definition of fill patterns using matrices and color settings – please specify, matrices? |
obsolete |
C |
A special case of pol02-pol05 |
rd-pol02 |
support vertical and horizontal distance between of fill pattern symbols |
pol02-pol05 are handled by additional SLD/SE parameters |
? |
M |
- |
rd-pol03 |
support rotation of fillpattern symbols |
- |
? |
M |
- |
rd-pol04 |
setting size of fill pattern must be supported |
- |
? |
M |
- |
rd-pol05 |
setting rotation of fill pattern must be supported |
- |
? |
S |
- |
rd-pol06 |
Polygon border should support same style settings as linestrings |
- |
? |
M |
- |
|
|||||
rd-t01 |
improve text positioning |
better support for manipulation of text positions (displacemant, rotation for lines and for polygons, wrap around lines). In general: textpositioning for points should support the same feature as point symbols; text positioning along lines should support same feature a symbols along lines |
not started |
M |
- |
rd-t02 |
improve text placement for polygons |
force text placement with a polygon (representative point or line as specified in SE or on polygon border) |
testing |
M |
- |
rd-t03 |
support gap definition between text repetition |
support for definition of space between repeated text along lines |
testing |
M |
- |
rd-t04 |
horizontal and vertical displacement should be supported |
- |
? |
M |
- |
rd-t05 |
support minimum space definition for text rendering |
support for definition of minmal space between text and start-/end-node of a line |
testing |
S |
- |
rd-t06 |
restrict label repetition |
support for forcing painting a text just once along a line |
testing |
S |
AP: It should configurable if a text will be rendered along a line as long there is engouph space or if it just should be rendered once no matter how the line is |
rd-t07 |
ensure text readability |
ensure that all lables are completely within a map |
not started |
S |
It is assumed that this behaviour is only used, when auto-placement is selected. |
rd-t08 |
It should be possible to render '/' as horizontal break line |
defined in AAA; if some special masks will be used a '/' still should be rendered as '/'. The complete behavior should be configurable |
? |
C |
- |
rd-t09 |
It should be possible to create one text by concatinating two or more properties |
- |
? |
S |
- |
rd-t10 |
bended text for point placements |
defined in AAA |
? |
S |
- |
rd-t11 |
definition of any available ttf as used font should be possible |
- |
? |
M |
- |
rd-t12 |
It should be possible to set text position along a line as percent of a lines length |
e.g. a postion of 0.5 defines that a text will be rendered at the center of a line (required by AAA) |
? |
S |
- |
rd-t13 |
depending on placment type fixed horizontal and vertical alignments (left, right, bottom, top, center) should be supported |
- |
? |
S |
- |
rd-t14 |
Rotation of text around ancor point should be possible |
- |
? |
M |
- |
rd-t15 |
Rotation of text around their center should be possible |
- |
? |
M |
- |
(*) M-S-C-W: Must have, Should have, Could have, Won't have