pub enum SpatialFilter {
CoversGeographyPoint {
column: &'static str,
lng: f64,
lat: f64,
},
DWithinGeographyPoint {
column: &'static str,
lng: f64,
lat: f64,
radius_meters: f64,
},
}Expand description
PostGIS spatial filter primitives. v1 ships two ops that cover the “is point inside this zone” / “is this point within radius of that zone” cases — the rest of the ST_* surface can land on demand.
All current variants treat the column as geography(Point, 4326)
— the WGS-84 lat/lon CRS that PostGIS ships with extensions
enabled. Casting happens at render time via ::geography so
schemas storing geometry or geometry(...) columns work without
extra annotations, at the cost of an in-flight cast each call.
Variants§
CoversGeographyPoint
ST_Covers(col::geography, ST_MakePoint($lng, $lat)::geography).
Matches when the column’s geography fully covers (contains
including the boundary) the given point. Use for “is this
caller-supplied point inside the row’s service area” lookups.
DWithinGeographyPoint
ST_DWithin(col::geography, ST_MakePoint($lng, $lat)::geography, $radius_meters). Matches when the column’s geography is
within radius_meters of the given point (great-circle
distance on WGS-84, since ::geography triggers the spheroid
path).
Trait Implementations§
Source§impl Clone for SpatialFilter
impl Clone for SpatialFilter
Source§fn clone(&self) -> SpatialFilter
fn clone(&self) -> SpatialFilter
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SpatialFilter
impl Debug for SpatialFilter
Source§impl PartialEq for SpatialFilter
impl PartialEq for SpatialFilter
Source§fn eq(&self, other: &SpatialFilter) -> bool
fn eq(&self, other: &SpatialFilter) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for SpatialFilter
Auto Trait Implementations§
impl Freeze for SpatialFilter
impl RefUnwindSafe for SpatialFilter
impl Send for SpatialFilter
impl Sync for SpatialFilter
impl Unpin for SpatialFilter
impl UnsafeUnpin for SpatialFilter
impl UnwindSafe for SpatialFilter
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more