verbose_example/
verbose_example.rs

1extern 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}