1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
use ;
/// The edge interpretation between explicitly defined vertices.
///
/// This does not affect format conversions (e.g., parsing `geoarrow.wkb` as
/// `geoarrow.linestring`), but does affect distance, intersection, bounding, overlay, length, and
/// area calculations. The `edges` key must be omitted to indicate planar/linear edges or be one
/// of:
///
/// If the `edges` key is omitted, edges will be interpreted following the language of
/// [Simple features access](https://www.opengeospatial.org/standards/sfa):
///
/// > **simple feature** feature with all geometric attributes described piecewise
/// > by straight line or planar interpolation between sets of points (Section 4.19).
///
/// If an implementation only has support for a single edge interpretation (e.g.,
/// a library with only planar edge support), an array with a different edge type
/// may be imported without losing information if the geometries in the array
/// do not contain edges (e.g., `geoarrow.point`, `geoarrow.multipoint`, a
/// `geoarrow.wkb`/`geoarrow.wkt` that only contains points and multipoints, or any
/// array that only contains empty geometries). For arrays that contain edges,
/// the error introduced by ignoring the original edge interpretation is similar to
/// the error introduced by applying a coordinate transformation to vertices (which
/// is usually small but may be large or create invalid geometries, particularly if
/// vertices are not closely spaced). Ignoring the original edge interpretation will
/// silently introduce invalid and/or misinterpreted geometries for any edge that crosses
/// the antimeridian (i.e., longitude 180/-180) when translating from non-planar
/// to planar edges.
///
/// Implementations may implicitly import arrays with an unsupported edge type if the
/// arrays do not contain edges. Implementations may otherwise import arrays with an
/// unsupported edge type with an explicit opt-in from a user or if accompanied
/// by a prominent warning.