用visvalingam-wyatt算法简化几何图形

visvalingamwyatt的Python项目详细描述


visvalingam-wyatt线简化的python实现 算法。

此实现是由于Eliot Hallmark。 这个版本只是将其打包为一个python模块。

使用

>>>importvisvalingamwyattasvw>>>points=[(1,2),(2,3),(3,4),...]>>>vw.simplify(points)[(1,2),(3,4),...]

点可以是任何类似于Sequence的对象(listtuple,a 公开__iter__方法的自定义类)。

测试不同的方法和阈值:

simplifier=vw.Simplifier(points)# Simplify by percentage of points to keepsimplifier.simplify(ratio=0.5)# Simplify by giving number of points to keepsimplifier.simplify(number=1000)# Simplify by giving an area thresholdsimplifier.simplify(threshold=0.01)

使用Geodata的缩写:

importvisvalingamwyattasvwfeature={"properties":{"foo":"bar"},"geometry":{"type":"Polygon","coordinates":[...]}}# returns a copy of the geometry, simplified (keeping 90% of points)vw.simplify_geometry(feature['geometry'],ratio=0.90)# returns a copy of the feature, simplified (using an area threshold)vw.simplify_feature(feature,threshold=0.90)

命令行工具vwsimplify可用于简化geojson 文件:

# Simplify using a ratio of points
vwsimplify --ratio 0.90 in.geojson -o simple.geojson

# Simplify using the number of points to keep
vwsimplify --number 1000 in.geojson -o simple.geojson

# Simplify using a minimum area
vwsimplify --threshold 0.001 in.geojson -o simple.geojson

为安装Fiona 简化任何地理数据层的附加功能。

许可证

麻省理工学院

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

推荐PyPI第三方库


热门话题
java应该考虑使用DTO来代替Spring控制器层吗?   java为什么要将Maven与Git结合起来?   java试图将CSV转换为XLSX,但使用了错误的逗号拆分列   mysql Spring 3+Hibernate:java。sql。BatchUpdateException:无法添加或更新子行(ManyToMany)   java基本字符串反转器   java无法使用RestControllerAdvice为身份验证失败生成自定义错误消息   java当只允许SQLException时,如何抛出EOFEException?   java如何创建播放模块?   Android中匿名类的java实例化异常问题   java两个停靠组件,其中第二个组件填充剩余空间   java如何在按钮延迟时启用它   Java中正在运行的应用程序中的后台进程   java我正试图从一个字符串打印出这个字符输出   如何使用java socket通过两个不同的wifi连接两台电脑?   javaapachecamel:如何将分层数据从数据库转换为pojo   java Webrtc:OniconConnectionChange和onConnectionChange之间有什么区别   java如何重写已经创建的JTable方法   爪哇扫雷机堆垛机   雅加达ee Java ee EJB 3.0 Glassfish