bp_buffer_linestring
Geometric functions > bp_buffer_linestring
syntax
- bp_buffer_linestring(arc_data_item, buffer_distance, nrPointsInCircle)
description
bp_buffer_linestring(arc_data_item, buffer_distance, nrPointsInCircle) creates a buffer polygon around each arc (linestring) in the arc_data_item. The result is a polygon data item with the same domain as the arc_data_item.
The buffer_distance is a value that specifies the width of the buffer (on each side of the line) in the units of the coordinate system.
The nrPointsInCircle is a UInt8 value that specifies the number of points used to approximate rounded end-caps and corner joins. A higher value results in a smoother buffer but increases computation time. The minimum value is 3.
The bp_ prefix of the function name indicates that the implementation of the operator uses the Boost Polygon library, which requires integer coordinates.
applies to
- attribute arc_data_item with a point value type with integer coordinates (ipoint or spoint) and arc composition
- parameter buffer_distance with an integer value type
- parameter nrPointsInCircle with a UInt8 value type
conditions
- The composition type of the arc_data_item needs to be arc.
- The data item must have a point value type with integer coordinates (ipoint or spoint).
- buffer_distance must be a positive value.
- nrPointsInCircle must be at least 3.
This function results in problems for (integer) coordinates larger than 2^25 (after translation where the first point is moved to (0, 0)). If your integer coordinates, for instance, represent mm, 2^25[mm] = about 33 [km]. We advise you to keep the size of your integer coordinates for polygons limited.
since version
15.6.0
example
attribute<ipoint> buffer_geometry (polygon, road) := bp_buffer_linestring(road/geometry, 25i, 8b);