Geometry.MultiPolygonZ (Geometry v1.0.0)

View Source

A set of polygons from type Geometry.PolygonZ

MultiPointZ implements the protocols Enumerable and Collectable.

Examples

iex> Enum.map(
...>   MultiPolygonZ.new([
...>     PolygonZ.new([
...>       LineStringZ.new([
...>         PointZ.new(11, 12, 13),
...>         PointZ.new(11, 22, 23),
...>         PointZ.new(31, 22, 33),
...>         PointZ.new(11, 12, 13)
...>       ]),
...>     ]),
...>     PolygonZ.new([
...>       LineStringZ.new([
...>         PointZ.new(35, 10, 13),
...>         PointZ.new(45, 45, 23),
...>         PointZ.new(10, 20, 33),
...>         PointZ.new(35, 10, 13)
...>       ]),
...>       LineStringZ.new([
...>         PointZ.new(20, 30, 13),
...>         PointZ.new(35, 35, 23),
...>         PointZ.new(30, 20, 33),
...>         PointZ.new(20, 30, 13)
...>       ])
...>     ])
...>   ]),
...>   fn polygon -> length(polygon) == 1 end
...> )
[true, false]

iex> Enum.into(
...>   [
...>     PolygonZ.new([
...>       LineStringZ.new([
...>         PointZ.new(11, 12, 13),
...>         PointZ.new(11, 22, 23),
...>         PointZ.new(31, 22, 33),
...>         PointZ.new(11, 12, 13)
...>       ])
...>     ])
...>   ],
...>   MultiPolygonZ.new())
%MultiPolygonZ{
  polygons: [
      [
        [
          [11, 12, 13],
          [11, 22, 23],
          [31, 22, 33],
          [11, 12, 13]
        ]
      ]
    ],
  srid: 0
}

Summary

Functions

Creates an empty MultiPolygonZ.

Creates a MultiPolygonZ from the given Geometry.MultiPolygonZs.

Types

t()

@type t() :: %Geometry.MultiPolygonZ{
  polygons: [[Geometry.ring()]],
  srid: Geometry.srid()
}

Functions

new()

@spec new() :: t()

Creates an empty MultiPolygonZ.

Examples

iex> MultiPolygonZ.new()
%MultiPolygonZ{}

new(polygons, srid \\ 0)

@spec new([Geometry.PolygonZ.t()], Geometry.srid()) :: t()

Creates a MultiPolygonZ from the given Geometry.MultiPolygonZs.

Examples

iex> MultiPolygonZ.new([
...>   PolygonZ.new([
...>     LineStringZ.new([
...>       PointZ.new(6, 2, 3),
...>       PointZ.new(8, 2, 4),
...>       PointZ.new(8, 4, 5),
...>       PointZ.new(6, 2, 3)
...>     ]),
...>   ]),
...>   PolygonZ.new([
...>     LineStringZ.new([
...>       PointZ.new(1, 1, 3),
...>       PointZ.new(9, 1, 4),
...>       PointZ.new(9, 8, 5),
...>       PointZ.new(1, 1, 3)
...>     ]),
...>     LineStringZ.new([
...>       PointZ.new(6, 2, 3),
...>       PointZ.new(7, 2, 4),
...>       PointZ.new(7, 3, 5),
...>       PointZ.new(6, 2, 3)
...>     ])
...>   ])
...> ])
%MultiPolygonZ{
  polygons: [
      [[[6, 2, 3], [8, 2, 4], [8, 4, 5], [6, 2, 3]]],
      [
        [[1, 1, 3], [9, 1, 4], [9, 8, 5], [1, 1, 3]],
        [[6, 2, 3], [7, 2, 4], [7, 3, 5], [6, 2, 3]]
      ]
    ],
    srid: 0
}

iex> MultiPolygonZ.new([])
%MultiPolygonZ{}