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 ==.