11个版本
0.6.5 | 2024年4月27日 |
---|---|
0.6.1 | 2023年3月12日 |
0.5.0 | 2021年12月3日 |
0.4.5 | 2021年11月25日 |
0.1.8 | 2016年7月31日 |
#123 在 地理空间
每月592次下载
19KB
311 行
FFI绑定库用于rust-polyline crate
使用这些绑定库的Python实现可在pypolyline找到
关于坐标顺序的说明
此crate使用来自geo-types
crate的Coordinate
和LineString
类型,这些类型按照(x, y)
的顺序编码坐标。Polyline算法和第一方文档假定相反的坐标顺序。因此,在编码和解码时,建议仔细注意您使用的坐标顺序。
decode_polyline_ffi
将Polyline转换为坐标数组。
调用者必须传递两个参数
- 指向一个以
NUL
终止的字符数组的指针(char*
) - 无符号32位整数,用于精度(Google Polyline为
5
,OSRM和Valhalla Polyline为6
)
返回一个具有两个字段的Array
结构体
data
,一个指向嵌套双精度浮点数数组的空指针:例如,[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]
len
,一个表示数组长度的size_t
整数类型,例如3
调用者必须调用 drop_float_array
释放此函数分配的内存。
drop_float_array
释放 Array
指向的内存,这是 Rust 在 FFI 边界上分配的。
调用者必须传递从 decode_polyline_ffi
收到的相同的 Array
结构体。
encode_coordinates_ffi
将坐标转换为 Polyline。
调用者必须传递一个包含两个成员的结构体
data
,一个指向嵌套双精度浮点数数组的空指针:例如,[[1.0, 2.0], [3.0, 4.0], [5.0, 6.0]]
len
,数组长度,例如3
返回一个指向 C 字符数组的指针(char*
)。
调用者必须随后调用 drop_cstring
释放此函数分配的内存。
drop_cstring
释放 char*
指向的内存,这是 Rust 在 FFI 边界上分配的。
调用者必须传递从 encode_coordinates_ffi
收到的相同的 char*
。
二进制文件
提供适用于 Linux(64位)、OSX(64位)和 Windows(32位和64位)的压缩二进制文件,可从 发布页面 获取。
Linux 二进制文件已使用 manylinux1(CentOS 5.11)Docker 映像构建,具有广泛的兼容性。
Linux 和 OSX 二进制文件都带有 rpath
支持。
许可证
依赖项
~0.7–2.3MB
~36K SLoC