Apply the spatial predicate.
(
predicate: &SpatialPredicate,
query: &nodedb_types::geometry::Geometry,
doc: &nodedb_types::geometry::Geometry,
distance_meters: f64,
)
| 310 | |
| 311 | /// Apply the spatial predicate. |
| 312 | fn apply_predicate( |
| 313 | predicate: &SpatialPredicate, |
| 314 | query: &nodedb_types::geometry::Geometry, |
| 315 | doc: &nodedb_types::geometry::Geometry, |
| 316 | distance_meters: f64, |
| 317 | ) -> bool { |
| 318 | match predicate { |
| 319 | SpatialPredicate::DWithin => { |
| 320 | crate::engine::spatial::st_dwithin(query, doc, distance_meters) |
| 321 | } |
| 322 | SpatialPredicate::Contains => crate::engine::spatial::st_contains(query, doc), |
| 323 | SpatialPredicate::Intersects => crate::engine::spatial::st_intersects(query, doc), |
| 324 | SpatialPredicate::Within => crate::engine::spatial::st_within(doc, query), |
| 325 | } |
| 326 | } |
| 327 | |
| 328 | /// Apply projection to a document, returning `nodedb_types::Value`. |
| 329 | fn project_doc(doc: &Value, doc_id: &str, projection: &[String]) -> Value { |
no test coverage detected