View Source Geometry.LineStringM (Geometry v0.3.1)
A line-string struct, representing a 2D line with a measurement.
A none empty line-string requires at least two points.
Link to this section Summary
Functions
Returns true
if the given LineStringM
is empty.
Creates a LineStringM
from the given coordinates.
Returns an :ok
tuple with the LineStringM
from the given GeoJSON term.
Otherwise returns an :error
tuple.
The same as from_geo_json/1
, but raises a Geometry.Error
exception if it fails.
Returns an :ok
tuple with the LineStringM
from the given WKB string.
Otherwise returns an :error
tuple.
The same as from_wkb/2
, but raises a Geometry.Error
exception if it fails.
Returns an :ok
tuple with the LineStringM
from the given WKT string.
Otherwise returns an :error
tuple.
The same as from_wkt/1
, but raises a Geometry.Error
exception if it fails.
Creates an empty LineStringM
.
Creates a LineStringM
from the given Geometry.PointM
s.
Returns the GeoJSON term of a LineStringM
.
Returns the WKB representation for a LineStringM
.
Returns the WKT representation for a LineStringM
. With option :srid
an
EWKT representation with the SRID is returned.
Link to this section Types
Specs
t() :: %Geometry.LineStringM{points: Geometry.coordinates()}
Link to this section Functions
Specs
Returns true
if the given LineStringM
is empty.
Examples
iex> LineStringM.empty?(LineStringM.new())
true
iex> LineStringM.empty?(
...> LineStringM.new(
...> [PointM.new(1, 2, 4), PointM.new(3, 4, 6)]
...> )
...> )
false
Specs
from_coordinates([Geometry.coordinate()]) :: t()
Creates a LineStringM
from the given coordinates.
Examples
iex> LineStringM.from_coordinates(
...> [[-1, 1, 1], [-2, 2, 2], [-3, 3, 3]]
...> )
%LineStringM{
points: [
[-1, 1, 1],
[-2, 2, 2],
[-3, 3, 3]
]
}
Specs
from_geo_json(Geometry.geo_json_term()) :: {:ok, t()} | Geometry.geo_json_error()
Returns an :ok
tuple with the LineStringM
from the given GeoJSON term.
Otherwise returns an :error
tuple.
Examples
iex> ~s(
...> {
...> "type": "LineString",
...> "coordinates": [
...> [1.1, 1.2, 1.4],
...> [20.1, 20.2, 20.4]
...> ]
...> }
...> )
iex> |> Jason.decode!()
iex> |> LineStringM.from_geo_json()
{:ok, %LineStringM{points: [
[1.1, 1.2, 1.4],
[20.1, 20.2, 20.4]
]}}
Specs
from_geo_json!(Geometry.geo_json_term()) :: t()
The same as from_geo_json/1
, but raises a Geometry.Error
exception if it fails.
Specs
from_wkb(Geometry.wkb(), Geometry.mode()) :: {:ok, t() | {t(), Geometry.srid()}} | Geometry.wkb_error()
Returns an :ok
tuple with the LineStringM
from the given WKB string.
Otherwise returns an :error
tuple.
If the geometry contains a SRID the id is added to the tuple.
The optional second argument determines if a :hex
-string or a :binary
input is expected. The default is :binary
.
An example of a simpler geometry can be found in the description for the
Geometry.PointM.from_wkb/2
function.
Specs
from_wkb!(Geometry.wkb(), Geometry.mode()) :: t() | {t(), Geometry.srid()}
The same as from_wkb/2
, but raises a Geometry.Error
exception if it fails.
Specs
from_wkt(Geometry.wkt()) :: {:ok, t()} | {:ok, t(), Geometry.srid()} | Geometry.wkt_error()
Returns an :ok
tuple with the LineStringM
from the given WKT string.
Otherwise returns an :error
tuple.
If the geometry contains a SRID the id is added to the tuple.
Examples
iex> LineStringM.from_wkt(
...> "LineString M (-5.1 7.8 1, 0.1 0.2 2)"
...> )
{:ok, %LineStringM{
points: [
[-5.1, 7.8, 1],
[0.1, 0.2, 2]
]
}}
iex> LineStringM.from_wkt(
...> "SRID=7219;LineString M (-5.1 7.8 1, 0.1 0.2 2)"
...> )
{:ok, {
%LineStringM{
points: [
[-5.1, 7.8, 1],
[0.1, 0.2, 2]
]
},
7219
}}
iex> LineStringM.from_wkt("LineString M EMPTY")
{:ok, %LineStringM{}}
Specs
from_wkt!(Geometry.wkt()) :: t() | {t(), Geometry.srid()}
The same as from_wkt/1
, but raises a Geometry.Error
exception if it fails.
Specs
new() :: t()
Creates an empty LineStringM
.
Examples
iex> LineStringM.new()
%LineStringM{points: []}
Specs
new([Geometry.PointM.t()]) :: t()
Creates a LineStringM
from the given Geometry.PointM
s.
Examples
iex> LineStringM.new([PointM.new(1, 2, 4), PointM.new(3, 4, 6)])
%LineStringM{points: [[1, 2, 4], [3, 4, 6]]}
Specs
to_geo_json(t()) :: Geometry.geo_json_term()
Returns the GeoJSON term of a LineStringM
.
Examples
iex> LineStringM.to_geo_json(
...> LineStringM.new([
...> PointM.new(-1.1, -2.2, -4.4),
...> PointM.new(1.1, 2.2, 4.4)
...> ])
...> )
%{
"type" => "LineString",
"coordinates" => [
[-1.1, -2.2, -4.4],
[1.1, 2.2, 4.4]
]
}
Specs
to_wkb(line_string, opts) :: wkb when line_string: t() | Geometry.coordinates(), opts: [ endian: Geometry.endian(), srid: Geometry.srid(), mode: Geometry.mode() ], wkb: Geometry.wkb()
Returns the WKB representation for a LineStringM
.
With option :srid
an EWKB representation with the SRID is returned.
The option endian
indicates whether :xdr
big endian or :ndr
little
endian is returned. The default is :xdr
.
The :mode
determines whether a hex-string or binary is returned. The default
is :binary
.
An example of a simpler geometry can be found in the description for the
Geometry.PointM.to_wkb/1
function.
Specs
to_wkt(t(), opts) :: Geometry.wkt() when opts: [{:srid, Geometry.srid()}]
Returns the WKT representation for a LineStringM
. With option :srid
an
EWKT representation with the SRID is returned.
Examples
iex> LineStringM.to_wkt(LineStringM.new())
"LineString M EMPTY"
iex> LineStringM.to_wkt(
...> LineStringM.new([
...> PointM.new(7.1, 8.1, 1),
...> PointM.new(9.2, 5.2, 2)
...> ])
...> )
"LineString M (7.1 8.1 1, 9.2 5.2 2)"
iex> LineStringM.to_wkt(
...> LineStringM.new([
...> PointM.new(7.1, 8.1, 1),
...> PointM.new(9.2, 5.2, 2)
...> ]),
...> srid: 123
...> )
"SRID=123;LineString M (7.1 8.1 1, 9.2 5.2 2)"