#[cfg(feature = "geo")] extern crate geos; #[cfg(feature = "geo")] use geos::{version, Error, Geom, Geometry, PreparedGeometry}; #[cfg(feature = "geo")] fn fun() -> Result<(), Error> { println!("geos_c version: {}", version()?); let g1 = Geometry::new_from_wkt("POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))")?; let g2 = Geometry::new_from_wkt("POLYGON ((1 1, 1 3, 5 5, 5 0, 1 1))")?; let pg1 = PreparedGeometry::new(&g1)?; let result = pg1.intersects(&g2)?; let result2 = pg1.contains(&g2.get_centroid()?)?; println!("Prepared geometry intersects test polygon : {:?}", result); println!( "Prepared geometry contains centroid other polygon : {:?}", result2 ); println!("Prepared geometry intersects each geometry from a vec of GeosGeometry :"); let vec_geoms = vec![ Geometry::new_from_wkt("POINT (1.3 2.4)").unwrap(), Geometry::new_from_wkt("POINT (2.1 0.3)").unwrap(), Geometry::new_from_wkt("POINT (3.1 4.7)").unwrap(), Geometry::new_from_wkt("POINT (0.4 4.1)").unwrap(), ]; for geom in &vec_geoms { print!("{:?} ", pg1.intersects(geom)?); } println!(); Ok(()) } #[cfg(feature = "geo")] fn main() { fun().unwrap(); } #[cfg(not(feature = "geo"))] fn main() { eprintln!("You need to enable the \"geo\" feature to run this example!",); }