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  }