Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Buffer of a LinearRing gives unexpected result #1223

Open
nbvfgh opened this issue Jan 8, 2025 · 0 comments
Open

Buffer of a LinearRing gives unexpected result #1223

nbvfgh opened this issue Jan 8, 2025 · 0 comments

Comments

@nbvfgh
Copy link

nbvfgh commented Jan 8, 2025

When calculating buffers with distances of 4, 10, and 10000 for a LineaRing, the following results are obtained:

Distance 4

geosop -a 'LINESTRING(25 44, 31 44, 32 38, 29 37, 25 37, 25 38, 24 40, 24 44, 25 44)' buffer N4

result:

POLYGON ((31 48, 31.797839962709272 47.919623884239925, 32.563616286818174 47.681725696952036, 33.26655390909026 47.29586610425661, 33.878403131675604 46.777552053798466, 34.37457492260308 46.147613580637454, 34.73512910122046 45.431366688593826, 34.94557569532857 44.65759594922143, 35.94557569532857 38.65759594922143, 35.99728017208324 37.85251703193185, 35.886388928163704 37.05343721864496, 35.617412641067 36.29286035010352, 35.20129234853929 35.60172409861089, 34.65495440448573 35.00814152906562, 34.00062197263785 34.53625755538917, 33.26491106406735 34.20526680779795, 30.264911064067352 33.20526680779795, 29.64072897202787 33.05165016945001, 29 33, 25 33, 24.219638711935485 33.07685887838708, 23.469266270539638 33.304481869954856, 22.77771906792159 33.67412155078982, 22.17157287525381 34.17157287525381, 21.674121550789817 34.777719067921595, 21.304481869954852 35.46926627053964, 21.07685887838708 36.21963871193549, 21 37, 21 37.05572809000084, 20.422291236000337 38.21114561800017, 20.10700404212908 39.08098831781055, 20 40, 20 44, 20.07685887838708 44.78036128806451, 20.304481869954852 45.53073372946036, 20.67412155078982 46.222280932078405, 21.17157287525381 46.82842712474619, 21.77771906792159 47.32587844921018, 22.46926627053964 47.695518130045144, 23.219638711935488 47.92314112161292, 24 48, 31 48))

图片
This is as expected

Distance 10

geosop -a 'LINESTRING(25 44, 31 44, 32 38, 29 37, 25 37, 25 38, 24 40, 24 44, 25 44)' buffer N10

reuslt:

POLYGON ((15.166889652774318 35.30554091945346, 15.05572809000084 35.52786404500042, 14.267510105322698 37.70247079452639, 14 40, 14 44, 14.192147195967696 45.95090322016129, 14.761204674887132 47.8268343236509, 15.685303876974547 49.55570233019602, 16.928932188134524 51.071067811865476, 18.44429766980398 52.314696123025456, 20.173165676349104 53.23879532511287, 22.049096779838717 53.80785280403231, 24 54, 31 54, 32.99459990677318 53.799059710599806, 34.90904071704544 53.20431424238008, 36.66638477272566 52.23966526064153, 38.19600782918901 50.94388013449617, 39.4364373065077 49.369033951593636, 40.33782275305114 47.57841672148456, 40.863939238321436 45.64398987305357, 41.863939238321436 39.64398987305357, 41.9932004302081 37.631292579829626, 41.71597232040926 35.633593046612404, 41.0435316026675 33.732150875258796, 40.00323087134824 32.00431024652721, 38.63738601121433 30.52035382266405, 37.00155493159464 29.340643888472922, 35.16227766016838 28.513167019494862, 32.16227766016838 27.513167019494862, 30.601822430069674 27.129125423625034, 29 27, 25 27, 23.049096779838713 27.1921471959677, 21.173165676349097 27.761204674887136, 19.44429766980398 28.685303876974547, 17.928932188134524 29.928932188134524, 16.685303876974544 31.44429766980398, 15.761204674887132 33.1731656763491, 15.192147195967696 35.04909677983871, 15.166889652774318 35.30554091945346), (24.312386073956134 39.788715703522854, 27.210331143956232 37.33378793407969, 30.876543209876544 41, 27.23449024290822 44.64205296696833, 24.312386073956134 39.788715703522854))

图片
When the distance is 10, the returned result contains an unexpected hole

Distance 10000

geosop -a 'LINESTRING(25 44, 31 44, 32 38, 29 37, 25 37, 25 38, 24 40, 24 44, 25 44)' buffer N10000

result:

MULTIPOLYGON (((-9786.797942702635 -1805.9285327130174, -9846.874576374967 -1561.8224300696706, -9976 40, -9976 44, -9783.852804032304 1994.903220161286, -9214.795325112867 3870.834323650899, -8290.696123025453 5599.702330196022, -7047.067811865475 7115.067811865476, -5531.70233019602 8358.696123025455, -3802.834323650897 9282.795325112867, -1926.903220161282 9851.852804032304, 24 10044, 25 10044, 31 10044, 293.556240747152 10017.549518968488, 28 10043.704525789928, -1919.9032201612843 9851.852804032304, -3795.834323650897 9282.795325112867, -5524.70233019602 8358.696123025455, -7040.067811865475 7115.067811865476, -8283.696123025453 5599.702330196022, -9207.795325112867 3870.834323650899, -9776.852804032304 1994.903220161286, -9969 44, -9786.797942702635 -1805.9285327130174)), ((-9697.856893698274 -2167.317836845486, -9297.086183805679 -3488.481810443963, -9461.832980505138 -3125.277660168379, -9462.832980505138 -3122.277660168379, -9697.856893698274 -2167.317836845486)), ((-8915.662050358991 -4329.37723942052, -8399.469626687634 -5295.105339272265, -8603.450590118939 -5017.684996503358, -8915.662050358991 -4329.37723942052)), ((-7865.814895069873 -6020.892079736929, -7158.377639037777 -6882.906870344323, -7372.489472387969 -6691.829727813683, -7865.814895069873 -6020.892079736929)), ((-6502.294054988885 -7468.407328398342, -5624.977639756318 -8188.402303225539, -5822.102846637648 -8075.421851755609, -6502.294054988885 -7468.407328398342)), ((-4882.135859022216 -8614.155057456455, -3861.7727978193984 -9159.550476382201, -4019.236808216302 -9108.717502693182, -4882.135859022216 -8614.155057456455)), ((-3079.141074774891 -9412.201845323176, -1940.1488949001546 -9757.711345742875, -2041.7395787892783 -9747.098707263021, -3079.141074774891 -9412.201845323176)), ((-1245.817746655414 -9830.244428300575, 28 -9955.704525789928, 1874.9285327130192 -9773.797942702635, 1630.8224300696727 -9833.874576374967, 29 -9963, 25 -9963, -1245.817746655414 -9830.244428300575)), ((2236.317836845485 -9684.856893698274, 3566.6530728556213 -9281.304111768608, 3194.277660168379 -9448.832980505138, 3191.277660168379 -9449.832980505138, 2236.317836845485 -9684.856893698274)), ((4345.721304242231 -8930.807234085687, 5345.375439814772 -8396.480966522902, 5033.554931594638 -8621.356111527079, 4345.721304242231 -8930.807234085687)), ((6022.119325273366 -7908.434557254157, 6911.713162822442 -7178.363762325754, 6669.38601121433 -7441.646177335952, 6022.119325273366 -7908.434557254157)), ((7467.205937417211 -6574.834697400572, 8204.74985892723 -5676.13482876463, 8035.230871348234 -5957.689753472787, 7467.205937417211 -6574.834697400572)), ((8624.033296592837 -4979.744893871324, 9174.609505954391 -3949.6892554940523, 9075.5316026675 -4229.849124741201, 8624.033296592837 -4979.744893871324)), ((9445.787169331707 -3182.8876156314564, 9784.215625639374 -2067.238509852093, 9747.972320409257 -2328.4069533875977, 9445.787169331707 -3182.8876156314564)), ((9897.369493463206 -1251.8542795248961, 10010.55483926274 -102.66417824178926, 10025.200430208099 -330.70742017037264, 9897.369493463206 -1251.8542795248961)), ((9956.41131505553 740.3926049032194, 9844.994447293308 1871.6270473467416, 9894.939238321438 1687.989873053573, 9895.939238321438 1681.989873053573, 9956.41131505553 740.3926049032194)), ((9626.055312988849 2676.623186848435, 9294.15990774635 3770.735709509505, 9368.822753051145 3622.4167214845634, 9626.055312988849 2676.623186848435)), ((8919.8311429027 4514.34604693487, 8380.42400384119 5523.505824498737, 8467.437306507698 5413.033951593634, 8919.8311429027 4514.34604693487)), ((7860.4129568592825 6183.710557924469, 7139.8639176809465 7061.7021025223, 7227.007829189005 6987.880134496169, 7860.4129568592825 6183.710557924469)), ((6481.100375577381 7619.75854387739, 5621.110232154723 8325.534214906063, 5697.384772725657 8283.665260641528, 6481.100375577381 7619.75854387739)), ((4818.831362134459 8765.924639611969, 3883.456804782604 9265.892756801577, 3940.0407170454437 9248.314242380084, 4818.831362134459 8765.924639611969)), ((2884.288402335881 9576.297171581587, 1994.5925466457018 9846.1834588244, 2025.599906773182 9843.05971059981, 2884.288402335881 9576.297171581587)))

图片
When the distance is 10000, the result is an intermittent MultiPolygon distributed on a large circular ring.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant