From 5e7028a92179e6d2dd82ea8e161b0ca63ffd58da Mon Sep 17 00:00:00 2001
From: Sara <sarasdj@stud.ntnu.no>
Date: Tue, 12 Mar 2024 12:40:30 +0100
Subject: [PATCH] update: divide into horizontal sections

---
 .../__pycache__/get_relation.cpython-311.pyc  | Bin 5443 -> 5437 bytes
 server/map/get_relation.py                    |  43 +++++++-----------
 2 files changed, 16 insertions(+), 27 deletions(-)

diff --git a/server/map/__pycache__/get_relation.cpython-311.pyc b/server/map/__pycache__/get_relation.cpython-311.pyc
index 292074eece6f6c20639a8f1279a549c2c84d1952..fb8ec21176d8e459a50cb57a1e64c0b8458ef3d8 100644
GIT binary patch
delta 1368
zcmZuvU2Gdg5Z*iA`PS#3vwi-Foz!uDsZ9t?+KQ5rx)CJ-`V*0~L`bEH$t8|0$4<`%
zCDmDd0KtJO5m+Al0Mb2~NG(!Oq>3LQAt4@%?xKTOhbox|gy6{nfy5iTHl|Rz+WB_&
zX6Cz@o%t&HMbh)3+sy;Kx>C)R%i_nL9*XDi)rRFaFFHnjN9B-{9`;LohOR)#nV~8U
z1)c#fo<LKyIOM8f&zr=%wJJ`<DY+w^E2y{>R^yP52^>~jH43|8X)g+3SI@s(?Kd9p
zIHQI;fL^sFC^!1Zmf$=UK@l`3`hf|eUu}L$KrFLx+%3`fqH#jWie0hiydD0WucKY2
z0jPK@KFr}KsU#Jz;*<Q6cq>q2a7tL(ivl+uE{mNT067tTz(j0rEkMH19Y$dN3ebWi
zkznwD<p3>2Ea8w8uHj$a#M0r#QQ^NiJYHNm$aQs$T7(!F#jiz4G}VPBnV4My^B@t~
z`<$&&;Xk#^-Y;h_oX(u9@zX=W;nNpoLX9@K!APb}(?}&~i(M|}i?YS0^BZevbeDUC
z>PAlZnL`$^lSOZCp|9a3N<`g`*N541HosD`Y^&LfMW;6{3hyn8Z+%_Nm5PNDc?a~9
z;~{<;D-JBBW2lRN<5Y+pYyu1__q!d04)1WE9Myv<BbYLSDV1;XAatmj(F4P(qaN(p
zenxdP?I6<M1ki!wAhP(r<F4?5E4J^7RTaZEV!B3j*GMB2*L?4-t263M1BwSQx(}n(
z#|$`N!U4Ut(Jkk~R732lMokej(d?rwP`SDgGKF4K=zo(@DRrz4`M0^ZxNT~CtUA3j
zpmGKrHQ}h<+CQQ`*Di0z)wBlu_TKld93{ld|I7*i5{=@Xp6LA@lt6_kbSsR;w%f%>
zHe}FIx-6h?JW=$7$Km@g4b!$fh=|2RY=?+#6QNztq=UWiGs)}PB>Ka1(lHTl_4(Qq
zz8!gCZe=~4Eo2Lscxf%Yu`&@)@D`KLmdfq++Lwz(St`k7nB_AB`UyOV!LsF73KqK|
zXA5PS@FzH#6fDmWcpBXn&I)}*B`}Mn^a}EN>(|fUDe3c9jM+tVcF}-KCS20tQauz^
zovQO*lTK<^-#=x*qzRKcOyZe<PBmq4-6q#vP49EPI@fy_x^>TU-_Ad;FRU8#8FM~k
zz%>)D>2R$cjj4hvG+_7u#`a;XdVS}r**j*yag&APIvn4N`>s&-^CZ1q^qPN;j}w)^
zCTjTK#Uox4pP~lQr{dAk1paEVg_qYiw&Y7hx8c{3$^2UEYQC5*Tg*$vV!l<U97oZ>
tAu5AT1m1aeilWA}<t8BK1MnO@L``U16X0WasC9gKv31-Jb4Uyx`3td2S$hBg

delta 1441
zcmZuwO-vg{6rRDm_U?MUyI%i*Z6H918>1k85+zd7)UDb;F_h4RDpEs(9M&<Wi`QK*
z6`*ygsMJ_d4z!a)4w1T2BWkHV5OG0O8b#`*>dB6*#@Y&%Yj3WqUV7@x5-Nf+(tPjD
zd++<+X!h+-eLwdJ-}!tT!0X9iGxJU8k<bn~1|MB`|GkdRz~A6w<ZX$sWnqa?IE<{x
zyaPVUmN>&lc>BwAo1Eg^#H{ZL(^)02=~ej1!4Z^rlh>J-V?}s3Zn9YKY{~bM9&h>-
z-yuB~%ajC@wmj%BK12&d7}e<TGz6xg2#34eJ%@W7j=1m6zp{t>NDtCN{J({G&?1am
zh(`p^L4f{fNk9p)u7t;5l1<t2;+qB0d#(VKQQCFQC0P==YeH6JC7=YA&=28F8b1);
z`wIdiaNq;5;72tof?2YobDa|DfC;PsIfa$hO^B&@A5d{BNK%y2rbN&qDgZ+-c!Gp4
z3>Lx%wN@)mgj@lujTCs4s3V1{bSnda0<MBYY<rB}gyOgGF)bVMH>dR$%pE~)Pw$xR
z*7S5fo5}90?Il;G%X%)G%cs?@DNS9;YWW0hx1^VCdQMX{-DWdNHnZ>2X|*t)wrMqe
zGozxnJ^e6(KJomB&M+UqAiBeRIl_FZ8?$OIpRu{QC1bXL1!sqCUQHK`*<xnS$Z2_-
zHgamFXuEFZvO4+9Hs=Ip7m8ZG7{q}tbe4UM8^azMlHwhdWp7_d&_WYnD0}{KgYe0U
zXXkV^l&po4^-!|RH8~LO*cdCbjZix=O*e@2G=a?aVnC<3?zO<NCV;+(wYt^)u;jQ6
zsSTHP#GAnF>vv#-+3gtE;&<kMp=%wJ^^VC6ZcmCmmwKK_J=Xb3`r*ZzG*p*{s?rc<
zcJ)=dACxxu4Sp}&W%=(dmPgB@FB-d9BFo0h@9xI>E7`5(;isWmY_uL5El=$6t<U++
zXME><v+~x1wHiNA=Lf3%0H(Gcw}$R%L}!ojp>^(BXM<vIr`A&&J@-c{^E-3ZvFo3w
zYSc`fnyFGVyC~}2;wbz`&fhI;*S!nS<v08&CP$rFC{c!pG$DFQfgj^C0Cb#n90wHF
z(J53wiAL`W7g=iZPa?W{0sSrv`mPq#oY7UBPZu()NgPR{b}`y#!xcS_i)^@TyVMN+
zv;{qvH*`Wwcy!W8PZ1bLia0KwATEI$co+N76R{zV*O-YqGf`zG8sTW!i++`&;^i7M
zRcEHE%v2-VSr)gW{u|JJg^-V<&*UpyFL4Qcfo%C}cnmEDF2R#%J8*iUA4hFEzqD9b
z(LW@<t7zyt86}&(rD|!zrfzDQ>fFMS&;^{+$<*mGhJTsY7d2%`&Ag$jXgK&)Y6`+3
hYpw~1eFZMGbi?zOrwOpxI^me7(~da`DdY<c{s+bfarFQI

diff --git a/server/map/get_relation.py b/server/map/get_relation.py
index 93038137..7b411154 100644
--- a/server/map/get_relation.py
+++ b/server/map/get_relation.py
@@ -33,8 +33,8 @@ def get_relation(self, body_of_water: str):
         #hrz_lines = grid_lines[0]  # Horizontal coordinates
         #vrt_lines = grid_lines[1]  # Vertical coordinates
 
-        hrz_lines = [60.7530]  # Horizontal coordinates
-        vrt_lines = [11.2267]  # Vertical coordinates
+        hrz_lines = [60.7530, 60.5931]  # Horizontal coordinates
+        vrt_lines = [11.0413]  # Vertical coordinates
 
         # Cut polygon into horizontal sections
         for hrz_line in hrz_lines:
@@ -43,38 +43,23 @@ def get_relation(self, body_of_water: str):
             cut_poly_1 = cut_polygon_in_two(polygon, hrz_line, True)
             polygon_part = cut_poly_1[0]  # Save upper horizontal section
 
-            if not polygon_part or not cut_poly_1[0]:
-                continue
-
-            # Cut each horizontal section into vertical sections
-            for vrt_line in vrt_lines:
-                cut_poly_2 = cut_polygon_in_two(polygon_part, vrt_line, False)
-
-                divided_map.append(cut_poly_2[0])  # Append part to final list of shapes
-
-                # Set polygon_part to the remaining, un-split, horizontal section for next iteration
-                polygon_part = cut_poly_2[1]
+            divided_map.append(polygon_part)
 
             polygon = cut_poly_1[1]  # Set polygon to the remaining, un-split shape for next iteration
 
-        # Split last remainder into horizontal lines
-        for vrt_line in vrt_lines:
-            last_section = cut_polygon_in_two(polygon, vrt_line, False)
-
-            divided_map.append(last_section[0])  # Append part to final list of shapes
-
-            # Set polygon_part to the remaining, un-split, horizontal section for next iteration
-            polygon = last_section[1]
-
-        break # NB: temporary break to ensure treatment of only the first polygon
+        divided_map.append(polygon)
 
     tiles = gpd.GeoDataFrame(geometry=divided_map)
 
-    # NB: test plots
+    # NB test plot
     fig, ax = plt.subplots()
     ax.set_aspect(1.5)
     ax.xaxis.set_major_locator(ticker.MultipleLocator(0.2))
-    tiles.plot(ax=ax, color='blue', edgecolor='orange', alpha=0.5, label='Original Polygon')
+
+    for polygon in tiles['geometry']:
+        x, y = polygon.exterior.xy
+        ax.plot(x, y, color='blue', alpha=0.5)  # Plot the exterior of the polygon
+
     plt.show()
 
     # Convert GeoDataFrame to GeoJSON
@@ -115,13 +100,17 @@ def cut_polygon_in_two(polygon: Polygon, divisor: float, horizontal: bool):
 
     # Check if the split_shape has enough coordinates to create a polygon
     if len(split_shape) < 3:
-        print("Not enough coordinates to create valid polygon: Split shape")
+        print("Not enough coordinates to create valid polygon: Split shape: ", len(split_shape))
         split_shape = None
+    else:
+        split_shape.append(split_shape[0])  # Append first coord to create closed loop
 
     # Check if the remaining_shape has enough coordinates to create a polygon
     if len(remaining_shape) < 3:
-        print("Not enough coordinates to create valid polygon: Remaining shape")
+        print("Not enough coordinates to create valid polygon: Remaining shape: ", len(remaining_shape))
         remaining_shape = None
+    else:
+        remaining_shape.append(remaining_shape[0])  # Append first coord to create closed loop
 
     # Return split polygons as Shapely Polygon objects
     return Polygon(split_shape), Polygon(remaining_shape)
-- 
GitLab