Struct geos::WKBWriter[][src]

pub struct WKBWriter<'a> { /* fields omitted */ }
Expand description

The WKBWriter type is used to generate HEX or WKB formatted output from [Geometry].

Example

use geos::{ContextHandling, Geom, Geometry, WKBWriter};

let point_geom = Geometry::new_from_wkt("POINT (2.5 2.5)").expect("Invalid geometry");
let mut writer = WKBWriter::new_with_context(point_geom.clone_context())
                           .expect("Failed to create WKBWriter");

// Output as WKB
let v: Vec<u8> = writer.write_wkb(&point_geom).unwrap().into();
assert_eq!(Geometry::new_from_wkb(&v).unwrap().to_wkt_precision(1).unwrap(),
           "POINT (2.5 2.5)");

// Output as HEX
let v: Vec<u8> = writer.write_hex(&point_geom).unwrap().into();
assert_eq!(Geometry::new_from_hex(&v).unwrap().to_wkt_precision(1).unwrap(),
           "POINT (2.5 2.5)");

Implementations

Creates a new WKBWriter instance.

Example

use geos::{Geom, Geometry, WKBWriter};

let point_geom = Geometry::new_from_wkt("POINT (2.5 2.5)").expect("Invalid geometry");
let mut writer = WKBWriter::new().expect("Failed to create WKBWriter");

let v: Vec<u8> = writer.write_wkb(&point_geom).unwrap().into();
assert_eq!(Geometry::new_from_wkb(&v).unwrap().to_wkt_precision(1).unwrap(),
           "POINT (2.5 2.5)");

Creates a new WKBWriter instance with a given context.

Example

use geos::{ContextHandling, Geom, Geometry, WKBWriter};

let point_geom = Geometry::new_from_wkt("POINT (2.5 2.5)").expect("Invalid geometry");
let mut writer = WKBWriter::new_with_context(point_geom.clone_context())
                           .expect("Failed to create WKBWriter");

let v: Vec<u8> = writer.write_wkb(&point_geom).unwrap().into();
assert_eq!(Geometry::new_from_wkb(&v).unwrap().to_wkt_precision(1).unwrap(),
           "POINT (2.5 2.5)");

Writes out the given geometry as WKB format.

Example

use geos::{Geometry, WKBWriter};

let point_geom = Geometry::new_from_wkt("POINT (2.5 2.5)").expect("Invalid geometry");
let mut writer = WKBWriter::new().expect("Failed to create WKBWriter");

let v: Vec<u8> = writer.write_wkb(&point_geom).unwrap().into();
let expected = vec![1u8, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 64, 0, 0, 0, 0, 0, 0, 4, 64];
assert_eq!(v, expected);

Writes out the given geometry as WKB format.

Example

use geos::{Geometry, WKBWriter};

let point_geom = Geometry::new_from_wkt("POINT (2.5 2.5)").expect("Invalid geometry");
let mut writer = WKBWriter::new().expect("Failed to create WKBWriter");

let v: Vec<u8> = writer.write_hex(&point_geom).unwrap().into();
let expected = vec![48u8,49,48,49,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,48,
                    52,52,48,48,48,48,48,48,48,48,48,48,48,48,48,48,52,52,48];
assert_eq!(v, expected);

Sets the number of dimensions to be used when calling WKBWriter::write_wkb or WKBWriter::write_hex. By default, it is 2.

Example

use geos::{Geometry, OutputDimension, WKBWriter, WKTWriter};

let mut wkt_writer = WKTWriter::new().expect("Failed to create WKTWriter");
wkt_writer.set_output_dimension(OutputDimension::ThreeD);
wkt_writer.set_trim(true);

let point_geom = Geometry::new_from_wkt("POINT (1.1 2.2 3.3)").expect("Invalid geometry");
let mut writer = WKBWriter::new().expect("Failed to create WKBWriter");

let v: Vec<u8> = writer.write_wkb(&point_geom).unwrap().into();
let geom = Geometry::new_from_wkb(&v).unwrap();
assert_eq!(wkt_writer.write(&geom).unwrap(), "POINT (1.1 2.2)");

writer.set_output_dimension(OutputDimension::ThreeD);
let v: Vec<u8> = writer.write_wkb(&point_geom).unwrap().into();
let geom = Geometry::new_from_wkb(&v).unwrap();
assert_eq!(wkt_writer.write(&geom).unwrap(), "POINT Z (1.1 2.2 3.3)");

Returns the number of dimensions to be used when calling [WKBWriter::write]. By default, it is 2.

Example

use geos::{OutputDimension, WKBWriter};

let mut writer = WKBWriter::new().expect("Failed to create WKBWriter");

assert_eq!(writer.get_out_dimension(), Ok(OutputDimension::TwoD));
writer.set_output_dimension(OutputDimension::ThreeD);
assert_eq!(writer.get_out_dimension(), Ok(OutputDimension::ThreeD));

Gets WKB byte order.

Example

use geos::{ByteOrder, WKBWriter};

let mut writer = WKBWriter::new().expect("Failed to create WKBWriter");

writer.set_wkb_byte_order(ByteOrder::LittleEndian);
assert_eq!(writer.get_wkb_byte_order(), Ok(ByteOrder::LittleEndian));

Sets WKB byte order.

Example

use geos::{WKBWriter, ByteOrder};

let mut writer = WKBWriter::new().expect("Failed to create WKBWriter");

writer.set_wkb_byte_order(ByteOrder::LittleEndian);
assert_eq!(writer.get_wkb_byte_order(), Ok(ByteOrder::LittleEndian));

Gets if output will include SRID.

Example

use geos::WKBWriter;

let mut writer = WKBWriter::new().expect("Failed to create WKBWriter");

writer.set_include_SRID(true);
assert_eq!(writer.get_include_SRID(), Ok(true));

Sets if output will include SRID.

Example

use geos::WKBWriter;

let mut writer = WKBWriter::new().expect("Failed to create WKBWriter");

writer.set_include_SRID(true);
assert_eq!(writer.get_include_SRID(), Ok(true));

Trait Implementations

Set the context handle to the WKBWriter.

use geos::{ContextInteractions, ContextHandle, WKBWriter};

let context_handle = ContextHandle::init().expect("invalid init");
let mut writer = WKBWriter::new().expect("failed to create WKT writer");
context_handle.set_notice_message_handler(Some(Box::new(|s| println!("new message: {}", s))));
writer.set_context_handle(context_handle);

Get the context handle of the WKBWriter.

use geos::{ContextInteractions, WKBWriter};

let mut writer = WKBWriter::new().expect("failed to create WKT writer");
let context = writer.get_context_handle();
context.set_notice_message_handler(Some(Box::new(|s| println!("new message: {}", s))));

Gets the last error (if any) from the ContextHandle held by this object. Read more

Gets the last notification (if any) from the ContextHandle held by this object. Read more

Executes the destructor for this type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.