Geo Bounds Aggregation Usageedit
Fluent DSL Exampleedit
s => s
.Aggregations(a => a
.GeoBounds("viewport", gb => gb
.Field(p => p.Location)
.WrapLongitude(true)
)
)Object Initializer Syntax Exampleedit
new SearchRequest<Project>
{
Aggregations = new GeoBoundsAggregation("viewport", Field<Project>(p => p.Location))
{
WrapLongitude = true
}
}Example json output.
{
"aggs": {
"viewport": {
"geo_bounds": {
"field": "location",
"wrap_longitude": true
}
}
}
}
Handling Responsesedit
response.ShouldBeValid();
var viewport = response.Aggs.GeoBounds("viewport");
viewport.Should().NotBeNull();
viewport.Bounds.Should().NotBeNull();
var bottomRight = viewport.Bounds.BottomRight;
bottomRight.Should().NotBeNull();
bottomRight.Lat.Should().HaveValue();
GeoLocation.IsValidLatitude(bottomRight.Lat.Value).Should().BeTrue();
bottomRight.Lon.Should().HaveValue();
GeoLocation.IsValidLongitude(bottomRight.Lon.Value).Should().BeTrue();
var topLeft = viewport.Bounds.TopLeft;
topLeft.Should().NotBeNull();
topLeft.Lat.Should().HaveValue();
GeoLocation.IsValidLatitude(topLeft.Lat.Value).Should().BeTrue();
topLeft.Lon.Should().HaveValue();
GeoLocation.IsValidLongitude(topLeft.Lon.Value).Should().BeTrue();