bp_buffer_linestring - ObjectVision/GeoDMS GitHub Wiki
Geometric functions > bp_buffer_linestring
- bp_buffer_linestring(arc_data_item, buffer_distance, nrPointsInCircle)
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.
- 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
- 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.
15.6.0
attribute<ipoint> buffer_geometry (polygon, road) := bp_buffer_linestring(road/geometry, 25i, 8b);