github.com/RevenueMonster/sqlike@v1.0.6/spatial/spatial.go (about) 1 package spatial 2 3 // Type : 4 type Type int 5 6 // Spatial Type : 7 const ( 8 Point Type = iota + 1 9 LineString 10 Polygon 11 MultiPoint 12 MultiLineString 13 MultiPolygon 14 ) 15 16 type function int 17 18 // String : 19 func (f function) String() string { 20 switch f { 21 case SpatialTypeGeomFromText: 22 return "ST_GeomFromText" 23 case SpatialTypeDistance: 24 return "ST_Distance" 25 case SpatialTypeWithin: 26 return "ST_Within" 27 case SpatialTypeEquals: 28 return "ST_Equals" 29 case SpatialTypePointFromText: 30 return "ST_PointFromText" 31 case SpatialTypeLineString: 32 return "ST_LineString" 33 case SpatialTypeAsText: 34 return "ST_AsText" 35 case SpatialTypeAsWKB: 36 return "ST_AsWKB" 37 case SpatialTypeAsWKT: 38 return "ST_AsWKT" 39 case SpatialTypeSRID: 40 return "ST_SRID" 41 case SpatialTypeIsValid: 42 return "ST_IsValid" 43 case SpatialTypeIntersects: 44 return "ST_Intersects" 45 case SpatialTypeTransform: 46 return "ST_Transform" 47 case SpatialTypeX: 48 return "ST_X" 49 case SpatialTypeY: 50 return "ST_Y" 51 case SpatialTypeAsGeoJSON: 52 return "ST_AsGeoJSON" 53 case SpatialTypeArea: 54 return "ST_Area" 55 } 56 return "UNKNOWN FUNCTION" 57 } 58 59 // functions : 60 const ( 61 SpatialTypeGeomFromText function = iota + 1 62 SpatialTypeDistance 63 SpatialTypeWithin 64 SpatialTypeEquals 65 SpatialTypePointFromText 66 SpatialTypePointFromWKB 67 SpatialTypeLineString 68 SpatialTypePoint 69 SpatialTypePolygon 70 SpatialTypeArea 71 SpatialTypeAsText 72 SpatialTypeAsWKB 73 SpatialTypeAsWKT 74 SpatialTypeAsGeoJSON 75 SpatialTypeSRID 76 SpatialTypeX 77 SpatialTypeY 78 SpatialTypeIsValid 79 SpatialTypeIntersects 80 SpatialTypeTransform 81 ) 82 83 // Func : 84 type Func struct { 85 Type function 86 Args []interface{} 87 } 88 89 // Geometry : 90 type Geometry struct { 91 Type Type 92 SRID uint 93 WKT string 94 } 95 96 // Value : 97 func (g Geometry) Value() (interface{}, error) { 98 return g.WKT, nil 99 }