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地理空间

Download history 168/week @ 2024-03-11 105/week @ 2024-03-18 122/week @ 2024-03-25 148/week @ 2024-04-01 62/week @ 2024-04-08 89/week @ 2024-04-15 93/week @ 2024-04-22 154/week @ 2024-04-29 112/week @ 2024-05-06 230/week @ 2024-05-13 139/week @ 2024-05-20 200/week @ 2024-05-27 155/week @ 2024-06-03 156/week @ 2024-06-10 83/week @ 2024-06-17 99/week @ 2024-06-24

每月497次下载
6 个crate中使用了(5个直接使用)

AGPL-3.0+

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