匀称的缓冲区产生额外的行

问题描述

这是我的程序:

from shapely import wkt

line_string = 'LInesTRING(114.337434257064 22.6869985219834,114.3375897 22.6869952,114.3378091 22.6869939,114.3379256 22.6869866,114.338153 22.6869723,114.3383013 22.6869747,114.3384207 22.6869932,114.3386951 22.6870794,114.3388456 22.6871314,114.3397001 22.6874642,114.340615 22.6878098,114.3406906 22.68785,114.3407353 22.6878952,114.3407928 22.6879718,114.34084529879 22.6881214965493,114.3408453 22.6881215)'
line_string = wkt.loads(line_string)

polygon = line_string.buffer(0.00020,cap_style=2,join_style=2).wkt

print(polygon)

我得到的输出为:

polyGON ((114.3375924292975 22.68719518733905,114.3378159518402 22.68719386291196,114.3379381076579 22.68718620851308,114.3381576652242 22.68717240168781,114.338284290118 22.68717445091064,114.338375160633 22.68718853051304,114.3386324603347 22.68726935862634,114.338776625568 22.68731916986973,114.3396284692013 22.68765093530119,114.340532377289 22.68799238314804,114.3405698099089 22.68801228779516,114.340583522319 22.68802615358793,114.3406142971512 22.68806715101655,114.340656568431 22.68818768455116,114.340656566767 22.68818767980638,114.341034033233 22.68805532019362,114.341034032023 22.68805531674292,114.3409713028488 22.68787644898345,114.340887077681 22.68776424641207,114.3408113900911 22.68768771220484,114.340697622711 22.68762721685196,114.3397717307987 22.68727746469881,114.338914574432 22.68694363013026,114.3387577396653 22.68688944137366,114.338466239367 22.68679786948696,114.338318309882 22.68677494908936,114.3381483347758 22.68677219831219,114.3379130700871 22.68678699288144,114.3378022481598 22.68679393708804,114.3375869707025 22.68679521266094,114.3374299838238 22.68679856764007,114.3374385303043 22.68719847632673,114.3375924292975 22.68719518733905))

我在QGIS中计算了这个多边形并发现了一个问题:如图所示,图形的右上角有一条线越过边界:

total polygon

right top corner

我发现那个额外点的坐标是114.340656568431 22.68818768455116,我想知道为什么会产生额外的线以及如何避免它。

我也通过改变buffer()中对应length的第一个参数做了一些测试,然后我发现当length ≤ 0.00016时不会有多余的行,但是当length ≥ 0.00017时会出现多余的行。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)