github.com/ravendb/ravendb-go-client@v0.0.0-20240229102137-4474ee7aa0fa/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 }