-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbounding_box.go
More file actions
63 lines (50 loc) · 1.21 KB
/
bounding_box.go
File metadata and controls
63 lines (50 loc) · 1.21 KB
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
package picker
import (
"encoding/json"
jwriter "github.com/mailru/easyjson/jwriter"
)
type BoundingBoxer interface {
BoundingBox() interface{}
json.Marshaler
}
var _ BoundingBoxer = (*BoundingBox)(nil)
var _ BoundingBoxer = (*Vertices)(nil)
var _ BoundingBoxer = (*BoundingBox)(nil)
// var _ BoundingBoxer = (*WKT)(nil)
// Vertices for GeoBoundingBoxQuery
//easyjson:json
type Vertices struct {
Top interface{} `json:"top"`
Bottom interface{} `json:"bottom"`
Left interface{} `json:"left"`
Right interface{} `json:"right"`
}
func (v Vertices) BoundingBox() interface{} {
return v
}
// BoundingBox for GeoBoundingBoxQuery
//easyjson:json
type BoundingBox struct {
TopLeft interface{} `json:"top_left"`
BottomRight interface{} `json:"bottom_right"`
}
func (bb BoundingBox) BoundingBox() interface{} {
return bb
}
type WKT string
func (wkt WKT) BoundingBox() interface{} {
return wkt
}
func (wkt WKT) String() string {
return string(wkt)
}
func (wkt WKT) MarshalJSON() ([]byte, error) {
return wktVal{WKT: wkt.String()}.MarshalJSON()
}
func (wkt WKT) MarshalEasyJSON(w *jwriter.Writer) {
wktVal{WKT: wkt.String()}.MarshalEasyJSON(w)
}
//easyjson:json
type wktVal struct {
WKT string `json:"wkt"`
}