Changes between Version 4 and Version 5 of MapGuideRfc29


Ignore:
Timestamp:
Aug 24, 2007, 4:59:19 AM (17 years ago)
Author:
waltweltonlair
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc29

    v4 v5  
    2525A few omissions in our new symbolization schemas have been identified.  This RFC describes the proposed schema changes which address the issues.
    2626
     27
    2728== Motivation ==
    2829
     
    4546
    4647=== Rendering Passes ===
    47 
    4848The new symbolization introduced the concept of rendering passes.  For a given layer a rendering pass corresponds to an iteration by the stylization code over that layer's features.  The default is to render with one pass (pass 0): we iterate once over all the features, and for each feature we stylize / draw it using all the symbols.  Usually this gives the desired behavior, but not always.  The common example where this doesn't work is when you want to draw a thin line on top of a thick line, and have "merging" behavior where features intersect:
    4949
     
    8181At stylization time, this would result in the following sequence of passes:
    8282
    83  * Instance RP 0
     83 * !SymbolInstance RP 0
    8484  * Road symbol RP 0
    8585  * Road symbol RP 1
    86  * Instance RP 1
     86 * !SymbolInstance RP 1
    8787  * Walkway symbol RP 0
    8888  * Walkway symbol RP 1
    8989
     90Here's an image showing the different behaviors for lines:
     91
     92[[Image(CompositeStyle.jpg)]]
    9093
    9194
    92 === Angle Offset Relative to Feature Geometry ===
     95=== Angular Offset Relative to Feature Geometry ===
     96The symbol definition schema currently includes support for specifying whether symbol angles are absolute or are computed from the geometry.  This is done via the !AngleControl element in !PointUsage, !LineUsage, and !AreaUsage.  If the !AngleControl is set to '!FromAngle' then we use the value of the Angle element to determine the angle to draw the symbol, while if the !AngleControl is set to '!FromGeometry' then we use the feature geometry to compute the draw angle.  In the latter case we ignore the Angle element.
    9397
     98The proposed change in behavior is that in the case of '!FromGeometry' we now use the Angle element to specify the additional amount to rotate the feature relative to the angle computed from the geometry.
    9499
     100In the case of point features this change makes no difference - the computed angle of a point is zero.  The behavior only changes for line and area features.  For line features the computed angle is the angle of the polyline at the symbol insertion point.  With the proposed change a user would be able to specify that his/her symbol be rotated a given amount relative to the polyline.  For area features the computed angle is the angle of the longest edge.  The same behavior change applies here.
    95101
    96102