verbose_example/
verbose_example.rs1extern crate geos;
2use geos::{version, Error, Geom, Geometry};
3
4fn fun() -> Result<(), Error> {
5 println!(
6 "geos_c version: {}",
7 version().expect("failed to get version")
8 );
9 let g1 = Geometry::new_from_wkt("POLYGON ((0 0, 0 5, 5 5, 5 0, 0 0))")?;
10 println!("Geometry 1 created");
11 println!("Area : {}", g1.area()?);
12 println!("Is Geom1 simple : {:?}", g1.is_simple()?);
13 let g2 = Geometry::new_from_wkt("POLYGON ((1 1, 1 3, 5 5, 5 0, 1 1))")?;
14 println!("Geometry 2 created");
15 println!("Geom1 intersects geom2 : {:?}\n", g1.intersects(&g2)?);
16 let g3 = g1.buffer(100.0, 8)?;
17 println!("Previous area = {} \nNew area = {}", g2.area()?, g3.area()?);
18 let result = g1.within(&g2)?;
19 println!("Geom1 within geom2 : {:?}\n", result);
20 println!("Geom1 to wkt : {:?}", g1.to_wkt());
21 let g5 = Geometry::new_from_wkt("LINESTRING(0.0 0.0, 7.0 7.0, 45.0 50.5, 100.0 100.0)")?;
22 println!("Geom5 (linestring) : {:?}", g5.geometry_type());
23 let g6 = g5.buffer(20.0, 10)?;
24 println!("Geom6 (polygon) : {:?}", g6.geometry_type());
25 let g4 = g1.get_centroid()?;
26 println!("Centroid of g1 : {:?}", g4.to_wkt());
27 println!(
28 "Centroid of g1 with round precision of 1: {:?}",
29 g4.to_wkt_precision(1)
30 );
31 println!("Geom4 contains centroid of geom1 : {:?}", g3.contains(&g4)?);
32 println!("Geom4 is valid ? : {}", g3.is_valid());
33 Ok(())
34}
35
36fn main() {
37 fun().unwrap();
38}