From b30bff8c212611a9616cabbf85e24d5dfde65dae Mon Sep 17 00:00:00 2001 From: Sara <sarasdj@stud.ntnu.no> Date: Sat, 16 Mar 2024 14:53:48 +0100 Subject: [PATCH] fix: map return json structure, maybe --- .../__pycache__/get_relation.cpython-311.pyc | Bin 5738 -> 6071 bytes server/map/get_relation.py | 42 +++++++++++++----- 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/server/map/__pycache__/get_relation.cpython-311.pyc b/server/map/__pycache__/get_relation.cpython-311.pyc index 67094f1eecf163be9387b15f784434bc7cdcf9f9..c39929327b028a8136b9df0ac343f1ad815472bc 100644 GIT binary patch delta 1806 zcmZuxUu@e%7{7Cz#BprL&i`#K3;nY;qwB^ZhUgF*Ye!4b#%PDc0xYCCr}IeS%yzeR zBx;5VWT+CYj1Ui#h|n}Z8`7jc&^O?PCmxc?(jp6_zD!6w<pCskVC61pCI;M{fA`(p z_kF+bJAd}CBj4;7zTkNl;5KsOcR3`k2~oJZHgx!O-kangKmfrUpXA%KkQCapFX=-t zDI!{yvJ`SI(@8&a$qp>Lu^d3mGDrrIN0tzaAFmwBx)6s?!fT%|L3_OqZov`5LpVDP zd2T`gZsDiXATWBnG63g&rjHJDZ%_b~*|N9ft%>F<j!-ZAZ=;fD0=#*q%pq@0!WzMt zG58NJfv$`=#NWiuZc%1M4EL0I;~_C73wG5?-1!huplV^_Y`Ekt@kqGsyXnBD_~|qV zR+5hd8zI5YKrj!=0^-WPk`o6thJzBZ!)Vv6<io2S-PQS>T?ugyHvy8aQ^<eaQ5H)= z%|&7uDT)8d*@v80cziRymBT1d5>W6uRhCMiwu{^m44GHy0PG=hB#a`Rw7X;wV7*@R zdwR(GSa+|syPd4@e0Kw1$>UwQBt1%B>uZxl&79c7kXo4q@g3`mlY>xNzv%KoIAFf- zeroB;o>Mv1FqFdl=;&zd^f^V3<<pBXBmK4<)788jGnBlHkLEi>e;m2u?tf?Oz@f`! z4ZkO#Y;A1;n=YsYIqtBj^kv(VO=skcno~8~Bcu6k(fxv)HWoBFPT8!!FqcBg#gu|< z;ic{(BNq%=!#-$Zu_$X^?AvCGnu=vZk#$?zb}+8ya&pE{)IyxnVnmC{c3kUbo!JNb z%?C_r$x+N1HiLZ^adJAQl#NtcFJeR6l~uKT8qZp~fYiM0CbLp7Y|o^u&dM4l>#)<r z)~5Ay>LpuBrRHTdh1Fz@<d;g>42f7%aT2bKs%l8Ld0j4`lqTy%^E=Nm=r<kgYcsYZ ztITVph%{1RHrJs|wQor4C;Q|D+nk}~<kWU5wtrh7YTN1ReykS5&0J#p*q8AFmln`J zF>kSdF11{MpMrI6a^o<D1~+MOla=H5X-}O!*q{>@ov71^`+~HRyH;2!T%D|pSN%=e z^}&gEPptMg=&(hH>vR}<k-{xNIbVkztkTU$>|SK(Ze-|d*KOg>g^l6H@VGTR-iS<C zk%=nzGvi(1SJBeP`35s!F$4FQ_+2Lc<;=#j_1QCZCf;C@7L%;E$9>wpJau(?dAc%< zi9~;8YE$x8rkmof7GRyxHdN`&U~e<pV?{?d9~*A=?YXhf>N|Ajg4Op-%jwu9v;YCO zJIb~IhAP(*fk*l%;rr0{Dc4{IEoQLJ3^p16YWkY5%2rvD(m*rVgROVEu=P$C$&&?6 zkGaadxThXF*a#)8P~u)_>~3gm<LO3d+zO31=n0FSsCUQu1MUbM{0g4L<>{JJ7Yaz% zXngtFUJP-sc8bVT1ZGVnJi*y;(WY}sLAK##^D`mL#>p9hlk49K90h00AH^rdePnlp z07GD}$xDO%Ng|%bpgS>;_Z`zDvNzg=?E0(HL5dy5YnxJaZO&W^^hS@8C5;yH#W=0a z5#0;{Wd0C{I}2F6X#N)X1xC!Df+t3734Z~kymQLjXmPP!=&sJJ?I&gl0!Im)GY^EK zVN!1G1lnO>9wlRF1@kQa(_g|z<R`8FWxf}hncZCnkBlbZEA8F{-b%YSfv3{$n_{rS Wx0vVPaahZ=0Ga;>k5MKYe(P^BAK(%I delta 1534 zcmZWoOKclO7~Wa$#_QenGhW-NW4Cte1{3lWB@pM?0Op|rDWL?5U>wiJvT<W;)<LAQ zl^k*~q7sSbP$31$ry|4wgeB;e6FnegM=Qlz2`L8<5-0PxfRJFut{Yl@&3yCC|K6F| zug89Q%=U@ZDl$YK`QtYg*$!+zP(B!nEhI$9K#-Rb5(Ehua;kNMh5R0uu)#jnM7Wu7 zI~4YqgacYsD-_9;ROdz?l!?W4@YN2uTz>-m1ID4HB9<*rGi&1&sVtTyD9(_2WMv0v z;f~~NJyx^hMP7+Zd(3UXFrSgx72+><;zY>burf?Vyg31_83x)8*^1oBzfqB(y)5M% zy_lR6e`9iArX~MVs=sH3mQ(Hji=EnPZal%dan@w>LB}Brork81wJbx|sS6%sy<Y2s zNdR**Q)X%k{T^5U!?rRW=e$1XhRSW0d?%S*0St-p_6p(;d0z7MY_$QZkCZO;6bzH| z_jp-;pah=d2k@`_dEl)peKG*{df03SAcQA{OFM{`Gem7`Jqfe#CbKYo|D1_|8tEbZ z9wcy!^phiNR|voFnPFdLJ_RpDSp&RhfbA$igTzUr_H)Qd@GoH|pSr#dQ*$?h8MTx| zYCcuU7B)w*%`EM7Ef;ABy|7*8?&5b#jpeKQ^2*)mT?Ww(3|p_ow7OYRk>Pw+O_jEg zx>U&L)ig~;%5$adqG|{mU6W>*?>R+TL~jV4B@i{C5aklhDi%>eE~==MRW%eQ8a!bc z0Rfz}lw$&|gbG<`@Tp=kzuk>+CX*Spkj&C1Hd1LdnKVpfV{qAgA#L=P3i+&7!Y_+g zfDL~vu3qRCrWa?3rEFf+k~yugX_$LG(&vujQdoSB5ZaUW3f81QcTVJZLyq5x5opSB zU5@WQbK-REzR+?gZN|j=I#A_WfuSl_eX}W?X@w%SoF1CcL(|8hg`?0yWAQaInxSiY z=vtL)SOZNV*b-d(srT(wu_~UN8M!mraL$o&FRO(gYcm9@+=+W9(DDr)T6N#lPr*>_ zLanTaAJ@ZA-3jU8nPzZS56-s27aK!UdicrX@cdDDz8PNB!;5X+<hPO52$;?NVw)jQ zHMbp%rGI}~7lOw^<Vc9rGEHGr7e*VMal#45oac!1>}yTVuXFwe=WpT9ty7Vj*i?pf zW%yW`JW?jVm})99U5Pch8J(MH^hRB_&4VFCUw_nO^sN`RHlc<%vPHvGC!yylU!w3L zF4~93QGjrR%V#&$?n9-=e(qE{PZm8&11QYYzqQLO@MGOM;TWab5efo@VXU|!=a(s6 zA)xUDI*GbD#;Ae9N`1{W$%;`z4Yr`6Rs4}V;ET~M2e+;lqa0eLzHd-S;P2g09uf-i z-|nA5KmJj<Vn);(y@l62J`a5>-3DoLk|LWfA&5Wl1jKiUg8q2g5BN*ZReaX#9UKL- RwRD>y%fqk^@ax{U{{=LfbOZnZ diff --git a/server/map/get_relation.py b/server/map/get_relation.py index 8b524205..27b285b6 100644 --- a/server/map/get_relation.py +++ b/server/map/get_relation.py @@ -1,6 +1,8 @@ import geopandas as gpd from shapely.geometry import Polygon, LineString, MultiLineString from shapely.ops import linemerge, unary_union, polygonize +import matplotlib.pyplot as plt +import random import json import os @@ -30,31 +32,47 @@ def get_relation(self, body_of_water: str): # NB: implement body_of_water divided_map.extend(combine_grid_with_poly(polygon, lines)) + ####################### PLOTTIND ############################ tiles = [gpd.GeoDataFrame(geometry=[tile]) for tile in divided_map] - sub_div_id = 0 - for tile in tiles: - tile['sub_div_id'] = sub_div_id - tile['sub_div_center'] = tile['geometry'].centroid.apply(lambda x: [x.x, x.y]) - sub_div_id += 1 + print("Plotting... This may take some time...") + # NB test plot + fig, ax = plt.subplots() + ax.set_aspect(1.5) - tiles_json = {'type': 'FeatureCollection', 'features': []} + # Plot each tile for tile in tiles: - feature = { + random_color = "#{:06x}".format(random.randint(0, 0xFFFFFF)) + gpd.GeoSeries(tile.geometry).plot(ax=ax, facecolor=random_color, edgecolor='none') + + plt.show() + ##################### PLOTTIND END ########################### + + features = [] + + sub_div_id = 0 + for tile in divided_map: + tile_feature = { 'type': 'Feature', - 'geometry': tile.geometry.__geo_interface__, + 'geometry': tile.__geo_interface__, 'properties': { - 'sub_div_id': int(tile['sub_div_id'].iloc[0]), - 'sub_div_center': tile['sub_div_center'].tolist() + 'sub_div_id': sub_div_id, + 'sub_div_center': tile.centroid.coords[0] } } - tiles_json['features'].append(feature) + features.append(tile_feature) + sub_div_id += 1 + + feature_collection = { + 'type': 'FeatureCollection', + 'features': features + } self.send_response(200) self.send_header("Content-type", "application/json") self.end_headers() - self.wfile.write(json.dumps(tiles_json).encode('utf-8')) + self.wfile.write(json.dumps(feature_collection).encode('utf-8')) def create_grid(poly: Polygon, cell_size): -- GitLab