基于rust-ffi的google多段线快速编解码

pypolyline的Python项目详细描述


安装

pip install pypolyline

请使用最新(>;=8.1.2)版本的pip

支持的python版本

  • python 2.7(*nix和windows)
  • Python 3.4(Windows)
  • python 3.6(*nix)

支持的平台

  • Linux(manylinux1-兼容)
  • 操作系统X
  • Windows 32位/64位

用法

frompypolyline.utilimportencode_coordinates,decode_polylinecoords=[[52.64125,23.70162],[52.64938,23.70154],[52.64957,23.68546],[52.64122,23.68549],[52.64125,23.70162]]# precision is 5 for Google Polyline, 6 for OSRM / Valhallapolyline=encode_coordinates(coords,5)# polyline is 'ynh`IcftoCyq@Ne@ncBds@EEycB'decoded_coords=decode_polyline(polyline,5)

尝试解码无效的多段线将引发util.DecodingError

尝试编码无效坐标将抛出util.EncodingError

cython模块

如果您对缺少内置异常感到满意,则可以 相反,使用函数的编译cython版本,给出 比ctypes函数快2倍:

frompypolyline.cutilimportencode_coordinates,decode_polyline
  • 经度错误将返回以Longitude error:
  • 开头的字符串
  • 纬度错误将返回以Latitude error:
  • 开头的字符串
  • 多段线错误将返回[[nan, nan]]

工作原理

外国金融机构和A Rust binary

速度快吗

…是的。
您可以通过安装polylinecgpolyencode包,然后运行benchmarks.py来验证这一点。

< div > C++版本运行在^ {STR 1 } $18x比纯Python版本快。
rust+cython版本比纯python版本快大约^{str 1}54x。

许可证

MIT

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Frida Java windows的逆向工程   Java术语中的对象初始化   java在何处放置maven参数化junit输入xml文件   java如何在Swift中创建以日期为键、布尔值为值的字典/地图?   java Velocity动态属性访问   java Maven站点我如何找到它们?   java JavaFX按钮在显示阶段时显示为选中状态   文件io字符串方法java赋值   java为SOAP头生成证书   java Android更改EditText的setError弹出消息的背景色   java格式存储为字符串的数字   java Testcontainers+dbrider:无法清除表X,消息:启用自动提交时无法提交。,原因:无效   java程序应该可以运行,但仍然没有输出?   Java在列表末尾添加一个节点?   java类对象中的默认构造函数做什么?   java如何更快地从映射返回键和值?