Syntax @Buffer( [, [,]] [,HANDLE_ARCS_AND_ELLIPSES]) @Buffer2( [, [,]] [,HANDLE_ARCS_AND_ELLIPSES]) Arguments The distance the buffer boundary will be from the original geometry, measured in ground units. Range: Real >= 0 The angle between successive approximations of a circular curve, measured in degrees. If 0 is specified, then no curves will be used to smooth the buffer. The default is 5. Range: Real >= 0 This sets the buffer or ending style. The default is CAP_ROUND. Range: CAP_ROUND | CAP_ROUND: | CAP_BUTT | CAP_PROJECTING | SIDES_ONLY | LEFT_SIDE_ONLY | RIGHT_SIDE_ONLY @Buffer Description This function replaces the geometry of a feature with a geometry representing a buffer of specified width around the original feature. If the width of the buffer is nonzero, the result will be a polygon or donut polygon. Each point in the boundary of the returned area will be distance from the original feature. (If one of the side options are chosen, the output will be a line or aggregate.) The controls how smooth any curves in the resulting buffer polygons are. Measured in degrees, vertices approximating the curve will be generated at this interval. The value 0 is special and causes no curve approximations to be done. If the feature was a point, it is replaced by a circle with a radius of . Each line is rereplaced by a polygon representing a buffer of width on either side of the line. An area feature is treated as a set of the lines which make up its boundaries. Each boundary will be buffered as if it were a line. If the feature was an aggregrate feature, a single buffer is computed from all members of the aggregate. The controls other aspects of how the returned buffer will appear. CAP_ROUND This rounds the ends. It uses the same rounding angle as set with . This is the default. CAP_ROUND: This rounds the ends, but uses a different stroke angle. Example: CAP_ROUND:25 CAP_BUTT This makes the ends of buffered lines flat, with the end of the original line touching the end of the buffer. CAP_PROJECTING This makes the ends of buffered lines flat, with the buffer extending out units beyond the end of the original line. SIDES_ONLY The result is not a polygon, but an aggregate which is both the left and right sides of the buffer as lines. LEFT_SIDE_ONLY The result is not a polygon, but is just the left side of the buffer as a line. In the case where the line being buffered forms a closed area, this reverts to CAP_ROUND behavior. RIGHT_SIDE_ONLY The result is not a polygon, but is just the right side of the buffer as a line. In the case where the line being buffered forms a closed area, this reverts to CAP_ROUND behavior. Note: This function is two-dimensional. Three-dimensional features will result in two-dimensional output buffered features, and z coordinates will be lost. @Buffer2 Description Note: The @Buffer2 function uses functionality from the GEOS library (http://geos.refractions.net/), which is distributed under the terms of the Free Software Foundation's LGPL license (http://www.gnu.org/licenses/lgpl.html). In order to comply with the terms of the LGPL, Safe Software Inc. has set up a website (http://www.safe.com/foss) to provide further information. This function replaces the geometry of a feature with one that represents the original, padded by a specified width parameter, . Each point in the output geometry will be at a distance from the original geometry. The parameter , measured in degrees, controls the smoothness of curves in the resulting buffer. Vertices approximating the curve will be generated at this interval. If the value 0 is specified, no curve approximations are made and corners are beveled. There are two main buffering styles, regular buffering and side buffering, specified by the parameter . Regular buffering styles include CAP_ROUND, CAP_BUTT, and CAP_PROJECTING. These styles apply to all geometries, and always output area features (i.e. polygon or donut features). The cap style describes the type of ending for input line features. If the input feature is an area, the particular cap style is ignored. If a zero is specified, then the output features will not grow or shrink in size; all geometries of this feature are dissolved together. For example, a feature containing an aggregate geometry, using @Buffer2 with a width of 0.0, will generate a dissolved version of the feature. If a negative is specified, then the output features will be shrunk. Please note that when specifying a negative for input line features, the output will result in null geometries for those line features. The following describes the different types of end cap styles available: CAP_ROUND This style rounds line endings by a stroked arc. The smoothness of the round cap can be controlled by the parameter . This is the default setting. CAP_ROUND: This style is like CAP_ROUND, except a custom angle parameter can be specified. CAP_BUTT This style makes line endings flush to the end of the line, that is, the end of the line touches the end of the buffer. CAP_PROJECTING This style creates square line endings. The buffer extends beyond the line ending by a width of . Note: This function is two-dimensional. Three-dimensional features will result in two-dimensional output buffered features, and z coordinates will be lost. Side buffering styles include SIDES_ONLY, LEFT_SIDE_ONLY, and RIGHT_SIDE_ONLY. These styles apply to line features only - features with geometries that do not contain lines will generate no output geometries. Unlike regular buffering, side buffering styles can only accept positive values of . Side buffering styles will only generate valid output geometries if each input line feature does not self-intersect. The following describes the different types of side buffering available: LEFT_SIDE_ONLY This style generates a line representing the left side of a regular buffer. RIGHT_SIDE_ONLY This style generates a line representing the right side of a regular buffer. SIDES_ONLY This style generates lines representing both the left and right sides of a regular buffer. If the FME_GEOMETRY_HANDLING directive is set to yes in the mapping file, arcs and ellipses will be stroked prior to being buffered; they are otherwise buffered as points located at their respective center points. If the FME_BUFFER2_DIVIDE_AND_CONQUER directive is set to yes or is undefined in the mapping file, buffering of aggregate geometries will be performed using a divide and conquer algorithm. If this directive is set to no, buffering is performed against the entire collection at once. The divide and conquer algorithm splits the collection in to smaller pieces, buffers the individual pieces, then unions the pieces back together. The divide and conquer algorithm is the default, since it is has higher performance and lower resource requirements than buffering at once. Buffering at once can be advantageous in specific situations, as it is more robust when dealing with degenerate geometries. TO BE RESOLVED HANDLE_ARCS_AND_ELLIPSES argument added to Syntax section above, but not documented.