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

Download history 138/week @ 2024-04-26 6/week @ 2024-05-03 6/week @ 2024-05-17 2/week @ 2024-05-24

每月592次下载

MIT 许可证

19KB
311

Test and Build Coverage Status

FFI绑定库用于rust-polyline crate

使用这些绑定库的Python实现可在pypolyline找到

关于坐标顺序的说明

此crate使用来自geo-types crate的CoordinateLineString类型,这些类型按照(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 支持。

许可证

MIT

依赖项

~0.7–2.3MB
~36K SLoC