基于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
速度快吗
…是的。
您可以通过安装polyline和cgpolyencode包,然后运行benchmarks.py来验证这一点。