[−][src]Struct geos::WKBWriter
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
impl<'a> WKBWriter<'a>
[src]
pub fn new() -> GResult<WKBWriter<'a>>
[src]
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)");
pub fn new_with_context(
context: Arc<ContextHandle<'a>>
) -> GResult<WKBWriter<'a>>
[src]
context: Arc<ContextHandle<'a>>
) -> GResult<WKBWriter<'a>>
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)");
pub fn write_wkb<'b, G: Geom<'b>>(&mut self, geometry: &G) -> GResult<CVec<u8>>
[src]
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);
pub fn write_hex<'b, G: Geom<'b>>(&mut self, geometry: &G) -> GResult<CVec<u8>>
[src]
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);
pub fn set_output_dimension(&mut self, dimension: OutputDimension)
[src]
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)");
pub fn get_out_dimension(&self) -> GResult<OutputDimension>
[src]
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));
pub fn get_wkb_byte_order(&self) -> GResult<ByteOrder>
[src]
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));
pub fn set_wkb_byte_order(&mut self, byte_order: ByteOrder)
[src]
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));
pub fn get_include_SRID(&self) -> GResult<bool>
[src]
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));
pub fn set_include_SRID(&mut self, include_SRID: bool)
[src]
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
impl<'a> ContextHandling for WKBWriter<'a>
[src]
type Context = Arc<ContextHandle<'a>>
fn get_raw_context(&self) -> GEOSContextHandle_t
[src]
fn clone_context(&self) -> Arc<ContextHandle<'a>>
[src]
impl<'a> ContextInteractions<'a> for WKBWriter<'a>
[src]
fn set_context_handle(&mut self, context: ContextHandle<'a>)
[src]
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);
fn get_context_handle(&self) -> &ContextHandle<'a>
[src]
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))));
fn get_last_error(&self) -> Option<String>
[src]
fn get_last_notification(&self) -> Option<String>
[src]
impl<'a> Drop for WKBWriter<'a>
[src]
impl<'a> Send for WKBWriter<'a>
[src]
impl<'a> Sync for WKBWriter<'a>
[src]
Auto Trait Implementations
impl<'a> RefUnwindSafe for WKBWriter<'a>
impl<'a> Unpin for WKBWriter<'a>
impl<'a> UnwindSafe for WKBWriter<'a>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,