github.com/altipla-consulting/ravendb-go-client@v0.1.3/spatial_options.go (about)

     1  package ravendb
     2  
     3  const (
     4  	//about 4.78 meters at equator, should be good enough (see: http://unterbahn.com/2009/11/metric-dimensions-of-geohash-partitions-at-the-equator/)
     5  	SpatialOptionsDefaultGeohashLevel = 9
     6  	//about 4.78 meters at equator, should be good enough
     7  	SpatialOptionsDefaultQuadTreeLevel = 23
     8  )
     9  
    10  /// SpatialOptions describes spatial options
    11  type SpatialOptions struct {
    12  	Type         SpatialFieldType      `json:"Type"`
    13  	Strategy     SpatialSearchStrategy `json:"Strategy"`
    14  	MaxTreeLevel int                   `json:"MaxTreeLevel"`
    15  	MinX         float64               `json:"MinX"`
    16  	MaxX         float64               `json:"MaxX"`
    17  	MinY         float64               `json:"MinY"`
    18  	MaxY         float64               `json:"MaxY"`
    19  
    20  	// Circle radius units, only used for geography  indexes
    21  	Units SpatialUnits `json:"Units"`
    22  }
    23  
    24  // NewSpatialOptions returns new SpatialOptions with default values
    25  func NewSpatialOptions() *SpatialOptions {
    26  	return &SpatialOptions{
    27  		Type:         SpatialFieldGeography,
    28  		Strategy:     SpatialSearchStrategyGeohashPrefixTree,
    29  		MaxTreeLevel: SpatialOptionsDefaultGeohashLevel,
    30  		MinX:         -180,
    31  		MaxX:         180,
    32  		MinY:         -90,
    33  		MaxY:         90,
    34  		Units:        SpatialUnitsKilometers,
    35  	}
    36  }