Skip to content

bp_buffer_multi_point

MaartenHilferink edited this page Jun 14, 2026 · 1 revision

Geometric functions > bp_buffer_multi_point

syntax

  • bp_buffer_multi_point(multipoint_data_item, buffer_distance, nrPointsInCircle)

description

bp_buffer_multi_point(multipoint_data_item, buffer_distance, nrPointsInCircle) creates a buffer polygon around each coordinate of the multipoint_data_item. The result is a polygon data item with the same domain as the multipoint_data_item.

The buffer_distance is a value that specifies the radius of the buffer circles in the units of the coordinate system.

The nrPointsInCircle is a UInt8 value that specifies the number of points used to approximate each circle. 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

conditions

  1. The composition type of the multipoint_data_item needs to be multipoint.
  2. The data item must have a point value type with integer coordinates (ipoint or spoint).
  3. buffer_distance must be a positive value.
  4. 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 limited.

changed restriction

Since version 20.2.0 the first argument is expected to have multipoint composition type. Passing an arc or polygon attribute is deprecated: it still works but produces a deprecation warning, and is slated to become an error in a future major version. Construct genuine multipoint geometry with points2multi_point. Before 20.2.0 this operator accepted arc or polygon geometry (their coordinates were treated as a set of points).

since version

15.7.3

example

attribute<ipoint> points          (district, multipoint) := points2multi_point(point, Sequence_rel, ordinal);
attribute<ipoint> buffer_geometry (district, polygon)    := bp_buffer_multi_point(points, 25i, 8b);

see also

Clone this wiki locally