From 8e591cfde0ebaaffc4f03d42ac2de4e85c506b9a Mon Sep 17 00:00:00 2001 From: Sara <sarasdj@stud.ntnu.no> Date: Tue, 12 Mar 2024 13:22:47 +0100 Subject: [PATCH] update: add break from splitting horizontal sections --- .../__pycache__/get_relation.cpython-311.pyc | Bin 5825 -> 5954 bytes server/map/get_relation.py | 31 ++++++++++-------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/server/map/__pycache__/get_relation.cpython-311.pyc b/server/map/__pycache__/get_relation.cpython-311.pyc index 1f9d6fb9f61cc81a841db10607e1f3e3d2ff0e9a..6d7c237fe1158ac5b62ed78021efb4298eee0deb 100644 GIT binary patch delta 1267 zcmZuwPi)&%7=O=pJjY2Kr;hW7kUvh<K#E$_e;|6OghZ-JY@n`#P1ClL_Ju83h%3h` zqjFSET?9Q8Jx+*&C!tb_PU_Ulj(`N>m`r9AOGw>uw@8T7F1+VrDbsj*{`vFw{l0(i zd;V$S=Sk`NNJIo=Jy{ymQ1UD3Z}<gf;A8k0{|PHlz<H(|2)+ZZ@8Ao}E0tiHa=q1w zSP?_8!e~g>hPx$8AnXr1k{R=v09cVm(En<Pc#2CDP~^6!F&GG1b7s^xQ?ex?2|r*I z7{ZWO*(eI)*SXX<1XdJ@!xij)Nb(PB_}#l!!1mnmkrcxfHu_rF4{Zewqx%qmAINjI zI<lGZWdIry-exrz#rIe>FF(&DxknnZ&$VNO6Hl3AzJfR_zKmiRa(P(B8aKm^*eazK z%n9F2s7YT&L8R<6q#}l%iQI`>{Ln$A@B>bPX?g}()k>f^QV$dR9HEovY|*mpmnfr5 z7*-sKFEV!Z=bFrrCKDWSl<~bl0^emNzLT_oouzH7$rsuNc8*$-DU?1dbtpHm^LRN> zlu0zuDEJ0jBLyX4k-9-r9GBw}SOMkC@e2PfOc|tM@RZJAi$7m))#eMAp0eZ%GlB_6 z@u$L#7~8D13_3TLU)Oa5wXq{~aW#1VqfNtHZ4#%p8@y#~{U>r%;|jjQ4Ws&I9o5k4 zhTi<l9l50&^)0<+R-3Es+PYcSTdv^8aiz_gVb<4)ZKG<KZM-I;&@#zP?`u26;=Z`U zmjcoNl<@V?I6TGO(5u^tU}*pdbeI0&!ON2eH;?Z881H8moy=nQ{E0SkQ2j373+GOi zu>pXQ^ue`<+Tp4vp2(>I53<BvjJ)Z=p758F=q1Zea@tA0)mP>nW&YvvBW0ndES$vC zdlizRINO_D{7vXxyxiBWINHpWJ?T`={2><~$whnNNOMMK`|_M4&-LUv623Hh^tLnh zMo%u1eVQoRQ(x<NKD@)v3_u_-gMSTQi^A@?zA)_w(>-q=PeoXE$%vD#z4?@bE;-e< z=}o~XQZ>DF#`_dTDZEEPqd<pOK4(Z&zDQvOZ_DqB1u9ZlJ9gw}4DWHX_;=-wn4=~N zU*gO0U&s~Ds+Ao5ncUbXRdb`Mo6Y*#BpJ)?nqiDn@+AITRa0~@Zs6mlUNv2AP1l=V ad?SbNtKSqZK{#cv4*-4t4;uJp;_APVfF@i3 delta 1188 zcmZuwT}TvB7`=CQXPlYc*`58FaaUV+*UG=r*wO+adQl2BEz*e4menzTS{<34qGXod z%m*K=+fzsk6q}%dA&~_M1woG*QZ^77^^k81(NizoJ36A&W#-H`=R4mw_nv#_ZQYw% z?-QQq03HoZh5mBsuJ;#gLk{>6zCfR0Gh|WBQB5&Tpl1M`byS|`B1CJA9Ix{#qkH6C zToz7M=qy$r&v`YUtpq^lb+63lodC??du!x;I%O~@?Gv3onL{a|q)PY6?CuXtoxtsP zGxXHpc2Pwm1RAt^0Wi$ku};l<^EflNlg$a5XlJp~jb1ww(1X5FV$8Q!34tCM=54Lv z#hOr9i`fJ&7VKCS&?#38?nf!tF{j@M5NTYiw9{A`vSXQ(19=CYkpra#34L`@v7Px0 zOSY;TD{^8^(gQ{@afKCiNe;@Pc@ZV3APf_(8FPAwaCsN*hwrTc!IZLRjXN&pv0%=Y z0lYrJC?Qitk8saY;(;jr;{h=CkxX&19NwC@-2m4EBWl$r=%BmI=8c%OkHtou)WHb0 zri_-s1yEhGc$c1m!A-ImDqbNNr`v```y1n(sF~4V0=;6cpc?iLrFw7@J!7AC4yxm+ z4Ax{#_J*o$hc3dHjGZ&NzUx|QOv&6zB~1@`4k)9kv9zk0j9s)#a}+Ievb!CBfgF?U zcL%C<PtXa<TL204(p>}B(GPdk?ErhA05D9R`Avh8!?ULsE-h)Rk*2js(`3tf=|Lks zb8@n6BN!_H$VZIvg~a2W6|M{60u7=S1wiw)7ECi=qDK}yOM~yJ)oA-#w0)Y}5K2D@ z<sXD{qj5I<_~fdPToaNjLK0WTYi1KOIrp?@+Or|W4gdWSwCtIn8w!A;8c+-0?Q>2R ztupm%O#O;=Ek5U+&el!xGg+=yvnF;Zt646Zbf2QAa#khhLv14vC(w$)bY}WTRZ>@7 zq<RV4LEzjye=A4Mxk{jCvCIF*L3fe&eduE7CKn|kfeEx8dWR3=L$SH69KW0Xk+e3J zQMAlZZ=E*OcdcJl$xomjLQoRJ#B!6mno-i4>FQOKjMZO_qB`k8yaU3d(N_TE`5zoa IKc&lm0a>0ARsaA1 diff --git a/server/map/get_relation.py b/server/map/get_relation.py index ba0a3d1d..e97ffba0 100644 --- a/server/map/get_relation.py +++ b/server/map/get_relation.py @@ -27,11 +27,12 @@ def get_relation(self, body_of_water: str): # Divide all polygons into sections for polygon in polygons: - # Divide the length and with of polygon into a grid + # Divide the length and with of polygon into a grid of equally sized parts grid_lines = create_grid_coords(polygon, cell_size=0.1) - hrz_lines = grid_lines[1] # Horizontal coordinates - vrt_lines = grid_lines[0] # Vertical coordinates + vrt_lines = grid_lines[0] # Vertical grid coordinates + hrz_lines = grid_lines[1] # Horizontal grid coordinates + for line in vrt_lines: print("Line: ", line) @@ -39,22 +40,26 @@ def get_relation(self, body_of_water: str): for hrz_line in hrz_lines: # Split shape into upper and lower section as hrz_line as divider - cut_poly_1 = cut_polygon_in_two(polygon, hrz_line, True) - polygon_part = cut_poly_1[0] # Save upper horizontal section + divided_poly = cut_polygon_in_two(polygon, hrz_line, True) + horizontal_section = divided_poly[0] # Save upper horizontal section - if not polygon_part or not cut_poly_1[0]: + if not horizontal_section or not divided_poly[0]: continue - # Cut each horizontal section into vertical sections, right to left + # Cut each horizontal section into vertical sections, right to left for vrt_line in vrt_lines: - cut_poly_2 = cut_polygon_in_two(polygon_part, vrt_line, False) + if len(horizontal_section.exterior.coords) < 3: + break # Break from loop im remaining section has no coordinates + + # Split the horizontal section into two vertical parts + vertical_parts = cut_polygon_in_two(horizontal_section, vrt_line, False) - divided_map.append(cut_poly_2[0]) # Append part to final list of shapes + divided_map.append(vertical_parts[0]) # Append split vertical sections to final list of shapes - # Set polygon_part to the remaining, un-split, horizontal section for next iteration - polygon_part = cut_poly_2[1] + # Set horizontal_section to the remaining, un-split, horizontal section for next iteration + horizontal_section = vertical_parts[1] - polygon = cut_poly_1[1] # Set polygon to the remaining, un-split shape for next iteration + polygon = divided_poly[1] # Set polygon to the remaining, un-split shape for next iteration divided_map.append(polygon) @@ -72,7 +77,7 @@ def get_relation(self, body_of_water: str): x, y = polygon.exterior.xy ax.plot(x, y, color='blue', alpha=0.5) - ax.fill(x, y, color=random_color, alpha=0.5) + ax.fill(x, y, color=random_color, alpha=1) plt.show() -- GitLab