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
type Context = Arc<ContextHandle<'a>>
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
Auto Trait Implementations
impl<'a> RefUnwindSafe for WKBWriter<'a>
impl<'a> UnwindSafe for WKBWriter<'a>