macro_rules! polygon {
() => { ... };
(
exterior: [
$(( $($exterior_tag:tt : $exterior_val:expr),* $(,)? )),*
$(,)?
],
interiors: [
$([
$(( $($interior_tag:tt : $interior_val:expr),* $(,)? )),*
$(,)?
]),*
$(,)?
]
$(,)?
) => { ... };
(
exterior: [
$($exterior_coord:expr),*
$(,)?
],
interiors: [
$([
$($interior_coord:expr),*
$(,)?
]),*
$(,)?
]
$(,)?
) => { ... };
(
$(( $($tag:tt : $val:expr),* $(,)? )),*
$(,)?
) => { ... };
(
$($coord:expr),*
$(,)?
) => { ... };
}
Expand description
Creates a Polygon
containing the given coordinates.
polygon![Coord OR (x: <number>, y: <number>), …]
// or
polygon!(
exterior: [Coord OR (x: <number>, y: <number>), …],
interiors: [
[Coord OR (x: <number>, y: <number>), …],
…
],
)
§Examples
Creating a Polygon
without interior rings, supplying x/y values:
use geo_types::polygon;
let poly = polygon![
(x: -111., y: 45.),
(x: -111., y: 41.),
(x: -104., y: 41.),
(x: -104., y: 45.),
];
assert_eq!(
poly.exterior()[1],
geo_types::coord! { x: -111., y: 41. },
);
Creating a Polygon
, supplying x/y values:
use geo_types::polygon;
let poly = polygon!(
exterior: [
(x: -111., y: 45.),
(x: -111., y: 41.),
(x: -104., y: 41.),
(x: -104., y: 45.),
],
interiors: [
[
(x: -110., y: 44.),
(x: -110., y: 42.),
(x: -105., y: 42.),
(x: -105., y: 44.),
],
],
);
assert_eq!(
poly.exterior()[1],
geo_types::coord! { x: -111., y: 41. },
);