Function geo_buffer::buffer_multi_polygon 
source · pub fn buffer_multi_polygon(
    input_multi_polygon: &MultiPolygon,
    distance: f64
) -> MultiPolygonExpand description
This function returns the buffered (multi-)polygon of the given multi-polygon.
Arguments
- input_multi_polygon:- MultiPolygonto buffer
- distance: determine how distant from each edge of original polygon to each edge of the result polygon. The sign will be:- +for to enlarge (to add paddings, make bigger) the given polygon, and,
- -for to deflate (to add margins, make smaller) the given polygon
 
Example
use geo_buffer::buffer_multi_polygon;
use geo::{Polygon, MultiPolygon, LineString};
let p1 = Polygon::new(
    LineString::from(vec![(0., 0.), (2., 0.), (2., 2.), (0., 2.)]), vec![],
);
let p2 = Polygon::new(
    LineString::from(vec![(3., 3.), (5., 3.), (5., 5.), (3., 5.)]), vec![],
);
let mp1 = MultiPolygon::new(vec![p1, p2]);
let mp2 = buffer_multi_polygon(&mp1, 1.);
let expected_exterior = LineString::from(vec![(-1., -1.), (3., -1.), (3., 2.), (6., 2.), (6., 6.), (2., 6.), (2., 3.), (-1., 3.), (-1., -1.)]);
assert_eq!(&expected_exterior, mp2.0[0].exterior())