8个版本 (破坏性)
使用旧Rust 2015
0.7.1 | 2021年4月24日 |
---|---|
0.7.0 | 2020年9月23日 |
0.6.0 | 2020年8月29日 |
0.5.0 | 2020年4月25日 |
0.1.0 | 2017年8月4日 |
#135 在 地理空间
每月497次下载
在 6 个crate中使用了(5个直接使用)
34KB
683 行
rust-wkb
此crate提供将rust-geo
几何类型转换为和从Well Known Binary格式(即ISO 19125)的功能
示例
use geo_types::*;
use wkb::*;
let p: Geometry<f64> = Geometry::Point(Point::new(2., 4.));
let res = geom_to_wkb(&p);
assert_eq!(res, vec![1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 16, 64]);
您还可以从std::io::Read
中“读取”一个几何形状
use geo_types::*;
use wkb::*;
let bytes: Vec<u8> = vec![1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 16, 64];
let p: Geometry<f64> = wkb_to_geom(&mut bytes.as_slice()).unwrap();
assert_eq!(p, Geometry::Point(Point::new(2., 4.)));
计划添加适当的*Ext
特质。
lib.rs
:
此crate提供将rust-geo
几何类型转换为和从Well Known Binary格式的功能。
示例
use geo_types::*;
use wkb::*;
let p: Geometry<f64> = Geometry::Point(Point::new(2., 4.));
let res = geom_to_wkb(&p).unwrap();
assert_eq!(res, vec![1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 16, 64]);
您还可以从std::io::Read
中“读取”一个几何形状
use std::io::prelude::*;
use std::io::Cursor;
use geo_types::*;
use wkb::*;
let bytes: Vec<u8> = vec![1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 16, 64];
let mut bytes_cursor = Cursor::new(bytes);
let p = bytes_cursor.read_wkb().unwrap();
assert_eq!(p, Geometry::Point(Point::new(2., 4.)));
.write_wkb(Geometry<Into<f64>>)
的作用类似
let mut bytes: Vec<u8> = vec![];
bytes.write_wkb(&Geometry::Point(Point::new(2_f64, 4.))).unwrap();
assert_eq!(bytes, vec![1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 16, 64]);
依赖项
~750KB
~15K SLoC