/
set_geom.go
258 lines (215 loc) · 5.85 KB
/
set_geom.go
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
package geom
/*
This file describes optional Interfaces to make geometries mutable.
*/
// PointSetter is a mutable Pointer.
type PointSetter interface {
Pointer
SetXY([2]float64) error
}
// PointZSetter is a mutable PointZer
type PointZSetter interface {
PointZer
SetXYZ([3]float64) error
}
// PointMSetter is a mutable PointMer
type PointMSetter interface {
PointMer
SetXYM([3]float64) error
}
// PointZMSetter is a mutable PointZMer
type PointZMSetter interface {
PointZMer
SetXYZM([4]float64) error
}
// PointSSetter is a mutable PointSer
type PointSSetter interface {
PointSer
SetXYS(srid uint32, xy Point) error
}
// PointZSSetter is a mutable PointZSer
type PointZSSetter interface {
PointZSer
SetXYZS(srid uint32, xyz PointZ) error
}
// PointMSSetter is a mutable PointMer
type PointMSSetter interface {
PointMSer
SetXYMS(srid uint32, xym PointM) error
}
// PointZMSSetter is a mutable PointZMer
type PointZMSSetter interface {
PointZMSer
SetXYZMS(srid uint32, xyzm PointZM) error
}
// MultiPointSetter is a mutable MultiPointer.
type MultiPointSetter interface {
MultiPointer
SetPoints([][2]float64) error
}
// MultiPointZSetter is a mutable MultiPointer.
type MultiPointZSetter interface {
MultiPointZer
SetPoints([][3]float64) error
}
// MultiPointMSetter is a mutable MultiPointer.
type MultiPointMSetter interface {
MultiPointMer
SetPoints([][3]float64) error
}
// MultiPointZMSetter is a mutable MultiPointer.
type MultiPointZMSetter interface {
MultiPointZMer
SetPoints([][4]float64) error
}
// MultiPointSSetter is a mutable MultiPointSer.
type MultiPointSSetter interface {
MultiPointSer
SetSRID(srid uint32, mp MultiPoint) error
}
// MultiPointZSSetter is a mutable MultiPointZSer.
type MultiPointZSSetter interface {
MultiPointZSer
SetSRID(srid uint32, mpz MultiPointZ) error
}
// MultiPointMSSetter is a mutable MultiPointMSer.
type MultiPointMSSetter interface {
MultiPointMSer
SetSRID(srid uint32, mpz MultiPointM) error
}
// MultiPointZMSSetter is a mutable MultiPointZMSer.
type MultiPointZMSSetter interface {
MultiPointZMSer
SetSRID(srid uint32, mpzm MultiPointZM) error
}
// LineStringSetter is a mutable LineStringer.
type LineStringSetter interface {
LineStringer
SetVertices([][2]float64) error
}
// LineStringMSetter is a mutable LineStringMer.
type LineStringMSetter interface {
LineStringMer
SetVertices([][3]float64) error
}
// LineStringZSetter is a mutable LineStringZer.
type LineStringZSetter interface {
LineStringZer
SetVertices([][3]float64) error
}
// LineStringZMSetter is a mutable LineStringZMer.
type LineStringZMSetter interface {
LineStringZMer
SetVertices([][4]float64) error
}
// LineStringSSetter is a mutable LineStringSer.
type LineStringSSetter interface {
LineStringSer
SetSRID(srid uint32, ls LineString) error
}
// LineStringMSSetter is a mutable LineStringMSer.
type LineStringMSSetter interface {
LineStringMSer
SetSRID(srid uint32, lsm LineStringM) error
}
// LineStringZSSetter is a mutable LineStringZSer.
type LineStringZSSetter interface {
LineStringZSer
SetSRID(srid uint32, lsz LineStringZ) error
}
// LineStringZMSSetter is a mutable LineStringZMSer.
type LineStringZMSSetter interface {
LineStringZMSer
SetSRID(srid uint32, lszm LineStringZM) error
}
// MultiLineStringSetter is a mutable MultiLineStringer.
type MultiLineStringSetter interface {
MultiLineStringer
SetLineStrings([][][2]float64) error
}
// MultiLineStringZSetter is a mutable MultiLineStringZer.
type MultiLineStringZSetter interface {
MultiLineStringZer
SetLineStringZs([][][3]float64) error
}
// MultiLineStringMSetter is a mutable MultiLineStringMer.
type MultiLineStringMSetter interface {
MultiLineStringMer
SetLineStringMs([][][3]float64) error
}
// MultiLineStringZMSetter is a mutable MultiLineZMStringer.
type MultiLineStringZMSetter interface {
MultiLineStringZMer
SetLineStringZMs([][][4]float64) error
}
// MultiLineStringSSetter is a mutable MultiLineSStringer.
type MultiLineStringSSetter interface {
MultiLineStringSer
SetSRID(srid uint32, mls MultiLineString) error
}
// MultiLineStringZSSetter is a mutable MultiLineZSStringer.
type MultiLineStringZSSetter interface {
MultiLineStringZSer
SetSRID(srid uint32, mlsz MultiLineStringZ) error
}
// MultiLineStringMSSetter is a mutable MultiLineMSStringer.
type MultiLineStringMSSetter interface {
MultiLineStringMSer
SetSRID(srid uint32, mlsm MultiLineStringM) error
}
// MultiLineStringZMSSetter is a mutable MultiLineZMSStringer.
type MultiLineStringZMSSetter interface {
MultiLineStringZMSer
SetSRID(srid uint32, mlszm MultiLineStringZM) error
}
// PolygonSetter is a mutable Polygoner.
type PolygonSetter interface {
Polygoner
SetLinearRings([][][2]float64) error
AsSegments() ([][]Line, error)
}
type PolygonZSetter interface {
PolygonZer
SetLinearRings([][][3]float64) error
AsSegments() ([][]LineZ, error)
}
type PolygonMSetter interface {
PolygonMer
SetLinearRings([][][3]float64) error
AsSegments() ([][]LineM, error)
}
type PolygonZMSetter interface {
PolygonZMer
SetLinearRings([][][4]float64) error
AsSegments() ([][]LineZM, error)
}
type PolygonSSetter interface {
PolygonSer
SetLinearRings(srid uint32, pol Polygon) error
AsSegments() ([][]Line, uint32, error)
}
type PolygonZSSetter interface {
PolygonZSer
SetLinearRings(srid uint32, polz PolygonZ) error
AsSegments() ([][]LineZ, uint32, error)
}
type PolygonMSSetter interface {
PolygonMSer
SetLinearRings(srid uint32, polm PolygonM) error
AsSegments() ([][]LineM, uint32, error)
}
type PolygonZMSSetter interface {
PolygonZMSer
SetLinearRings(srid uint32, polzm PolygonZM) error
AsSegments() ([][]LineZM, uint32, error)
}
// MultiPolygonSetter is a mutable MultiPolygoner.
type MultiPolygonSetter interface {
MultiPolygoner
SetPolygons([][][][2]float64) error
}
// CollectionSetter is a mutable Collectioner.
type CollectionSetter interface {
Collectioner
SetGeometries([]Geometry) error
}