灵活的多段线编码:坐标对或三元组列表的有损压缩表示

flexpolyline的Python项目详细描述


柔性折线

这是flexiblepolyline格式的python实现。在

折线编码是坐标对列表或 坐标三元组。它通过:

  1. 减少每个值的小数位数。在
  2. 仅编码与上一点的偏移量。在
  3. 为每个坐标增量使用可变长度。在
  4. 使用64个URL安全字符来显示结果。在

安装

pipinstallflexpolyline

使用

编码

encode(iterable, precision=5, third_dim=ABSENT, third_dim_precision=0)

将坐标列表(或迭代器)编码为相应的字符串表示形式。有关进一步的定制,请参阅下面的可选参数。坐标顺序是(lat, lng[, third_dim])。在

^{pr2}$

OutputBFoz5xJ67i1B1B7PzIhaxL7Y。在

以高度作为第三个坐标的三维情况的另一个例子:

example=[(50.1022829,8.6982122,10),(50.1020076,8.6956695,20),(50.1006313,8.6914960,30),(50.0987800,8.6875156,40),]print(fp.encode(example,third_dim=flexpolyline.ALTITUDE))

OutputBlBoz5xJ67i1BU1B7PUzIhaUxL7YU

解码

decode(encoded_string)

解码传递的编码字符串并返回元组列表(lat, lng[, third_dim])。在

iter_decode(encoded_string)

类似于decode,但返回一个迭代器。在

dict_decode(encoded_string)

decode类似,但返回字典列表。密钥"lat""lng"始终存在,而三维密钥取决于三维编码的类型。它可以是下列值之一:"alt""elv""lvl""cst1"或{}。在

iter_dict_decode(encoded_string)

类似于dict_decode,但返回一个迭代器。在

get_third_dimension(encoded_string)

返回与字符串中编码的第三维度相对应的值。模块中定义的可能值是:ABSENTALTITUDELEVELELEVATIONCUSTOM1和{}

示例

二维多段线解码示例:

importflexpolylineasfpprint(fp.decode("BFoz5xJ67i1B1B7PzIhaxL7Y"))

Output

[
    (50.10228, 8.69821),
    (50.10201, 8.69567),
    (50.10063, 8.69150),
    (50.09878, 8.68752)
]

从三维多段线解码dict的示例:

importflexpolylineasfpprint(fp.dict_decode("BlBoz5xJ67i1BU1B7PUzIhaUxL7YU"))

Output

[
    {'lat': 50.10228, 'lng': 8.69821, 'alt': 10},
    {'lat': 50.10201, 'lng': 8.69567, 'alt': 20},
    {'lat': 50.10063, 'lng': 8.69150, 'alt': 30},
    {'lat': 50.09878, 'lng': 8.68752, 'alt': 40}
]

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

推荐PyPI第三方库


热门话题
java从Dropwizard中的Minio检索文件时,GET请求中的超时是如何处理的?   带Hibernate的java Jackson用于序列化以避免枚举   Raspberry Pi上的java Jave分段错误   java在屏幕旋转时不保存当前片段和数据   java War文件未在Heroku上正确部署   如何使用Java处理Selenium webdriver中的促销广告或cookie   java处理“用法:PApplet[options]<classname>[sketch args]”   java文本文件错误扫描程序   运行第一个JavaFX模块化程序时出现java异常   java将fileoutputstream转换为字符串   如何调试gstreamerjava?   java Spring RestTemplate ResponseBody类是什么样的   如何将JSON数组转换为Java列表。我在用斯文森   javascript在显示div按钮后进入新页面