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