github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/spatial_criteria_factory.go (about) 1 package ravendb 2 3 var ( 4 spatialCriteriaFactoryInstance = NewSpatialCriteriaFactory() 5 ) 6 7 type SpatialCriteriaFactory struct { 8 } 9 10 func NewSpatialCriteriaFactory() *SpatialCriteriaFactory { 11 return &SpatialCriteriaFactory{} 12 } 13 14 func (f *SpatialCriteriaFactory) RelatesToShape(shapeWkt string, relation SpatialRelation) *WktCriteria { 15 return f.RelatesToShapeWithError(shapeWkt, relation, IndexingSpatialDefaultDistnaceErrorPct) 16 } 17 18 func (f *SpatialCriteriaFactory) RelatesToShapeWithError(shapeWkt string, relation SpatialRelation, distErrorPercent float64) *WktCriteria { 19 return NewWktCriteria(shapeWkt, relation, distErrorPercent) 20 } 21 22 func (f *SpatialCriteriaFactory) Intersects(shapeWkt string) *WktCriteria { 23 return f.IntersectsWithError(shapeWkt, IndexingSpatialDefaultDistnaceErrorPct) 24 } 25 26 func (f *SpatialCriteriaFactory) IntersectsWithError(shapeWkt string, distErrorPercent float64) *WktCriteria { 27 return f.RelatesToShapeWithError(shapeWkt, SpatialRelationIntersects, distErrorPercent) 28 } 29 30 func (f *SpatialCriteriaFactory) Contains(shapeWkt string) *WktCriteria { 31 return f.ContainsWithError(shapeWkt, IndexingSpatialDefaultDistnaceErrorPct) 32 } 33 34 func (f *SpatialCriteriaFactory) ContainsWithError(shapeWkt string, distErrorPercent float64) *WktCriteria { 35 return f.RelatesToShapeWithError(shapeWkt, SpatialRelationContains, distErrorPercent) 36 } 37 38 func (f *SpatialCriteriaFactory) Disjoint(shapeWkt string) *WktCriteria { 39 return f.DisjointWithError(shapeWkt, IndexingSpatialDefaultDistnaceErrorPct) 40 } 41 42 func (f *SpatialCriteriaFactory) DisjointWithError(shapeWkt string, distErrorPercent float64) *WktCriteria { 43 return f.RelatesToShapeWithError(shapeWkt, SpatialRelationDisjoin, distErrorPercent) 44 } 45 46 func (f *SpatialCriteriaFactory) Within(shapeWkt string) *WktCriteria { 47 return f.WithinWithError(shapeWkt, IndexingSpatialDefaultDistnaceErrorPct) 48 } 49 50 func (f *SpatialCriteriaFactory) WithinWithError(shapeWkt string, distErrorPercent float64) *WktCriteria { 51 return f.RelatesToShapeWithError(shapeWkt, SpatialRelationWithin, distErrorPercent) 52 } 53 54 func (f *SpatialCriteriaFactory) WithinRadius(radius float64, latitude float64, longitude float64) *CircleCriteria { 55 return f.WithinRadiusWithUnits(radius, latitude, longitude, "") 56 } 57 58 func (f *SpatialCriteriaFactory) WithinRadiusWithUnits(radius float64, latitude float64, longitude float64, radiusUnits SpatialUnits) *CircleCriteria { 59 return f.WithinRadiusWithUnitsAndError(radius, latitude, longitude, radiusUnits, IndexingSpatialDefaultDistnaceErrorPct) 60 } 61 62 func (f *SpatialCriteriaFactory) WithinRadiusWithUnitsAndError(radius float64, latitude float64, longitude float64, radiusUnits SpatialUnits, distErrorPercent float64) *CircleCriteria { 63 return NewCircleCriteria(radius, latitude, longitude, radiusUnits, SpatialRelationWithin, distErrorPercent) 64 }