From 29bf47910143f4c2f088082bfd39a7120fcbc5cb Mon Sep 17 00:00:00 2001 From: ISA Date: Thu, 30 May 2024 11:41:23 +0200 Subject: [PATCH] iconurl von DB bekommen --- .env.local | 1 + components/MapComponent.js | 23 ++++++++++- pages/api/poi-icons.js | 36 ++++++++++++++++++ ...rker-icon-21.png => poi-marker-icon-3.png} | Bin 3146 -> 2914 bytes public/img/icons/pois/poi-marker-icon-4.png | Bin 2914 -> 3216 bytes ...rker-icon-20.png => poi-marker-icon-5.png} | Bin public/img/icons/pois/poi-marker-icon-6.png | Bin 3216 -> 3146 bytes 7 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 pages/api/poi-icons.js rename public/img/icons/pois/{poi-marker-icon-21.png => poi-marker-icon-3.png} (50%) rename public/img/icons/pois/{poi-marker-icon-20.png => poi-marker-icon-5.png} (100%) diff --git a/.env.local b/.env.local index 89e6a81e8..9a3771f80 100644 --- a/.env.local +++ b/.env.local @@ -1,6 +1,7 @@ DB_HOST=localhost #DB_HOST=192.168.10.58 +#DB_HOST=10.10.0.13 DB_USER=root DB_PASSWORD="root#$" DB_NAME=talas_v5 diff --git a/components/MapComponent.js b/components/MapComponent.js index cc4f2abd4..7b891e9ce 100644 --- a/components/MapComponent.js +++ b/components/MapComponent.js @@ -1162,6 +1162,18 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { // poiLayerRef(poiDbLayer) POI hinzufügen //-------------------------------------------- + const [poiData, setPoiData] = useState([]); + + useEffect(() => { + const fetchPoiData = async () => { + const response = await fetch("/api/poi-icons"); + const data = await response.json(); + setPoiData(data); + console.log("poiData icons:", data); + }; + + fetchPoiData(); + }, []); useEffect(() => { if (map && poiLayerRef.current && isPoiTypLoaded) { @@ -1172,13 +1184,22 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { const { latitude, longitude } = parsePoint(location.position); const poiTypName = poiTypMap.get(location.idPoiTyp) || "Unbekannt"; const deviceName = await fetchDeviceNameById(location.idLD); + console.log("location.icon:", location); // Check if user has the right to drag the marker const canDrag = userRights ? userRights.includes(56) : false; // Check if userRights is not null before using includes - + // Finde das passende Icon aus poiData + const matchingIcon = poiData.find( + (poi) => poi.idPoi === location.idPoi + ); + const iconUrl = matchingIcon + ? `/img/icons/pois/${matchingIcon.path}` + : "/img/icons/pois/default-icon.png"; const marker = L.marker([latitude, longitude], { icon: L.icon({ iconUrl: `/img/icons/pois/poi-marker-icon-${location.idPoiTyp}.png`, + //iconUrl: `/img/icons/pois/poi-marker-icon-${location.icon}.png`, //die kommen nicht aus poi sonder aus poityp tabelle + iconUrl: iconUrl, iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [1, -34], diff --git a/pages/api/poi-icons.js b/pages/api/poi-icons.js new file mode 100644 index 000000000..6c26f969d --- /dev/null +++ b/pages/api/poi-icons.js @@ -0,0 +1,36 @@ +// pages/api/poi-icons.js +import mysql from "mysql"; + +const dbConfig = { + //host: "10.10.0.13", + //host: "localhost", + host: process.env.DB_HOST, + user: process.env.DB_USER, + password: process.env.DB_PASSWORD, + database: process.env.DB_NAME, + port: process.env.DB_PORT, +}; +const connection = mysql.createConnection(dbConfig); +connection.connect((err) => { + if (err) { + console.error("Fehler beim Verbinden:", err.stack); + return; + } +}); +export default function handler(req, res) { + if (req.method !== "GET") { + return res.status(405).json({ error: "Nur GET Methode erlaubt" }); + } + + const query = `SELECT p.idPoi, i.path + FROM poi p + JOIN poiTyp pt ON p.idPoiTyp = pt.idPoiTyp + JOIN poiicons i ON pt.icon = i.idpoiicons;`; + connection.query(query, (error, results) => { + if (error) { + console.error("Fehler beim Abrufen der icons:", error); + return res.status(500).json({ error: "Fehler beim Abrufen der icons" }); + } + res.json(results); + }); +} diff --git a/public/img/icons/pois/poi-marker-icon-21.png b/public/img/icons/pois/poi-marker-icon-3.png similarity index 50% rename from public/img/icons/pois/poi-marker-icon-21.png rename to public/img/icons/pois/poi-marker-icon-3.png index cdb669214d6e579f8adc04091dd6ae79a1b400df..3e9f2ac1376c887b142e76657fc883dc21a774cf 100644 GIT binary patch delta 1142 zcmV-+1d02~7~&SNy8{F>Iy5$uzXL1;GdeUjv+n~L0R%HTG&YkA1#Sc_2uvEYeg&if ze*`K?L_t(oh0T^tNMlzN$A2%$Gm%IAh%PLmB1H5-QxpUdhLp-cDG0N3C*q$jQkGp->1-)0m!~MhMXg{CpMirna{ByRNP-^7HfmJ*FffN$Dbb zp?Exg?SFlJoq>S?VzJl@U`hg>Ii1eGhKGky6a`6=sH&=>w6v7GygV!x%e@fOe>Bl` zoj@SK-rgPnOG``i_V)e;d~F4O?C9ulyId|T77HGahl+{{91cfDrvR{8ttg5@Sy>qX z(P)&Ck`i`yc3j)r+ke}DFWqi80II6ubUKrp!{IQkt*y75%Cd~As&sXAQCV4e%~n%W z!~Xt0u~-bZ+s*9k>~ow>r||iFf5PYU3BxeNRRsb80o?gH91bxuG9qp&6bcES&nNo( z`vsuca&vP5a5x;;?e;rE;&Qo?V<7~wSd7ENLpnPMZA0W zF74ioA%4IA)||`bVsLQqR;@f3GB7ZZ9OvZZP+wn9V`F1Rw?f8{o}Qjem)_E&vMXzd zY2Nv;Wv!dOEQumA3?rHMe~*=}>i~%Y)or@2?;ai=ep*;q$i~J7s;VXz7ZnxJ*VmU7 zKnTI+<|Y84PzYer3Vc>kQBhl2S;@h{0ZykgSy;Kbxp+JtJRVQR0KeZ)BoYB&Vq$`D zIQ+&6?5?e?ebdy`gxzjudwZL+vomZq8?r1TNfJVcw4Y%ZM59p_e-{@Chr8JqRbO>?cT-$koK<*IX?b~>p`js;j*h+peowR`e@3Ix)0vr>=Rybo6h%p1 zdg%%-9*+}`$I*2izu(W~C*R5qjC!*eHOP9}570BuV0<0{++f2VjZZDM)kJu>b%707*qo IM6N<$g0;sCYybcN delta 1376 zcmV-m1)uuj7Rnf~y8{F^Ix#SlzXL1;Haamdv+n~L0R%QWF)))11#Sdf_vTo$eg&if ze+3drL_t(oh2554NK{!I$3J&w?#$%ms8f-Pqe4vJKw3R!k!%RE5l9b31m=?vLiC4y z(A|gBSP%;OGqNv9QtU&$Oe(4ShiG9ja2i%`%C3!!PE0Zwx9KuzTpgLS59;ig*BrNY zANC9P;oft8zt8#o&N;vPga1I%24j{@fA~sf3n>E{fkToc?KhjvSrZl)7d2oQ=mEaZ zgl0l6JDtv!lP6E&^?E5ODPc2^_wU~`IXOun5TLKG4$jUXZ{lz`kR*xSyLVGme^i9i z>BM9*Z3sywlW3a8#KZ(MGcy2;jEvCM*7hUtl^JM1d-iO($K%0dGI99uVMFA5yLa!_tUf~=e_w2vhvCB)-# zcJ0~)u-~#}%N79ab~`qkE$t)}3Q=EQ&&0$8i9~{Aa`iQkBng|%#OckkXM7K`!l;X@7{JZPAEtJO+HMFl>e54YRRwQJX?s;Z)FE5Yr@$u{-xw*M$ znuZV}E6D8ZEDH+@=?%{ce^Oal$-uxsx?J@2^>ORgt#u)aq7aM44EJMQ$eA-|7#$tu z!i5WjLLqv3dbo7y5nZUnwFLpnwpvj z27`D!9&&PWXlrW&;M}=$3=R&`(a}LL7-Z|#t#o#FvSY`N>?6s^f61Y-v5~>SK|CH0 zPo6wsZf*`$RT&x@0w5d?qbLfePoJi@xA)^Gv8bp>`2Bv--`_8cluRbY{rmTYEX$&{ zwpK)=QNwweipS%^@AnIz&nJLCO>=W|0O-1&&UdC#sT845h@(f3a^uDg+-~>!D_)kS zX#gzy)-0N)#ooSsfBQv2K><@!Q+U1JRR&h8m8Pa9QmNFc+P0pA5JVyoV5vL-!zSRT zk&zK#>5umM_3Jf;vMgr}7#kZ)N1`YSz)xl%Ha z(wgFER4i3hWq5d)>FH?z0)YSz9z5smAfBxJse~Qu3QFLAJ2dqFbQ2Qak2x6q3XV0D)4g>-LfZmN9WCM8=30Hd*{14~Aj|Kc6{18U5mZ$LmfFylFJA&E zpA&)*qGKhRKp=n+q9a?|tRZBiY%{6atZcF@i`%zvG7F2vA^>?qi+`x*0|yQWp!wed i03bnv+n~H0SGWTIyE>tG&Pe9 z1#bi5?mM%71*8Fg1z1T$K~z|U&6Z1OQ&||te>ZQ9ZER|>51N2|(8RPR)FKtzaa0&) zRgmazaN~#!hzPTB2GI%w1A-5bS!kpnK;+#WYPQDVnCX7KtQjT8!L0 zymuCDW1^`|eGK!5ySV3^`~A-M-Sa=^z<(fNjXu>nVr5Eyg|q-a0DA;Ma440^k_p*t zHUW5nJHT)G(0s_*^78U?hYugdVzFQ{nOG0x_3PJ6O-&l^D_5?d*Xt1kfu^P= z>gwt!FE2-bp-`*|$z(Dl5(%C>c|s%-0bp!wjPvKu4*}mQfnSdwKi=Bd*oZ=*pu4*p zv)PPJrzj%|X)XGy?+zIGs*z-MR%p zEEeO&jT;<0c8uQMUc%up0ORB1IGs+;oH+x)%A}WLm*vc+R;vrrPN&m&JRS@N!%EsH z6bg2K?b=0UWhG{_8I#EbfXCw@oleu;-CZ=+s*cWw*laccs;a7RI-T#0b-Uf9QYpH+ zx{AhHb$u=@EHE)KK~+^1O-)U_dGm%yBtkG4BoqpfOeO&kMG?Q>k6Nu}=gys_LnKM! z@#Dt`f`H9tL#x#ikH@)o?HUIU9^}M{6Zm|8J^&^rCYYa}$8NWy*X!2@85tR2=H?g~86g-9A_xMTHf;jH>-CaMCh6?#T-CU%LLNSRh+eP9;cx(uOePTo0jt%@ zp+kq*zI}TEWcTjft3rzY_*bu9;q&>hSS(nrRsh=D+i|&EWV2Z+Dk@Mam84QB0)YU3 z01k&^eGs?XjU-9z*s%kRMguJQsJ6DYVBF;7B(Ycwo6Sa9Sy@rQs*vH~VKf>I9UUD2 zL?RJ}hK2}-!!$QHvw#17wr<@@AP`_-VS&AS_vR*3Ou76rnYRbqg9i@^ATu*FxLht= zE*D;}H@9*6{eBh~7wPEeDA+CXV*#jt^4Gg4is*DYE?>TkBuP1^H#awP@!~}?nG7{G zHB?qs0&w)`QF?lMXlZFFaCst;09f%-LX}7)Ud+$W*Hlzg5Dtg2SS+-+w-?OBU@+ve z%2z`}0}Txg1#Pk{Gd(>Gz|_hd*^!DxB{Xp-^ z(Ra>bv79}1>J(eHZ29O+R^;>fxOC|fi;Iij0DrAqNB)UMqpAD%?;nt5834UrpEK8o zj$uiXkR*vjB0(S!pufMLzP`SHzf-BykH8?jfA6Ye`Q8Pz0eYQIr@ndfCMwnYmda!@ z9653XQ4}*k1b7Ve1AY19-rWc0fS-Y{fC@k(isGN+;!+{Cy|400000 LNkvXXu0mjfa+0wb delta 1153 zcmV-{1b+LF8R8bOw*v?m6wJhwzl@WuC6Zf z^Yi~brX(Rr=^}cecszdXe|>$Ofq?;HvDgb>N&=oaozB08hlf!V1xb>qs;Z*2w3NKO zJS-N=y%5uXG|_dPKp?>0-W~u;OH1_j_WlNZZ3TYp=;&~}TrMmY3m%V$ii!#x4o60( z0I*uED2hT^Ss4J)Xq1wY5_WcWT-)2*f7^gB-EKDks;c62I+L5j;V`YOt+$-YvW%*# zbai!6Sy_3_R#Q{M{{B9(SPZw@&Ft*#bDU16@cDdy!sqh|!!X2E1p)y9-1#{i4lyz^ zB5o=a3JIUjC;I#Q1)$k-b8`W3I2_pR_B%u3a=DUYAq25ljKjl2Iy*aQXlS6Wt}baW zC@28n()TCHVv}V#ZQKKaKyn<9$JyWC$K&x32n1+vZ)ag)A(-UI41At5Fo?&b1j|fQd8*I6prp z7z|>XCPhU>ynFX9?cR(be!u_LoXh26aB%QetvnbqFffoD=j7y2UtdpSV`E0QLdKAu zo}NsX-qNG8D{F{p-ubX)t((3qi6Sx#BboPqkCm?L0Eq(CZMv@S9v&WkT3A@f#>NJ! zswNi~6&2Cf*OwJQ2*Kv&CIF#O2w>3)d{$9WQCnGA$-%(^PNy?jSh=~mcsw3F9#6&q zzu!+J5&>XhVuElu{Kg9GuC1+o)6~?2-EL=ldz-VfGi){+vMeJ>5<-ZypJ5n8qfr)r z7Z(YK!vJWShS%$z1b#>)`D;~GUv+nPQ(Rn}Rd`Zqd3l+kp&^crj=lnZPqZU{Mx)Ww znVFgALI?m9MM++I=?X3$j}wo_(RCfa-_PXaBx7S^f1IA4_5jmxyYDLHvhM;u2NZ|H zA&-xbW3%0^ThlaYYiq+W3=`M`7Jx~AVC?F;o5dIgz6ZVl3V|HMFn(QGSxI?{)zwuD z!}tZr0m^_EHvy?2sq}tsZZ4%k(=>po`y6Bf`7l2}pVDwS|KTYh;e&&N`Cu@3Z88`P z5{t#=xd`#2Aplc1LzZc%9tFAle^SWu=H@2RXcV|;L$|iJ0G6K;f)L_u;xw8_rXhrQ zo9W(c9<5}^vI$kTvdgk8Mn^}5&1Mro`j+z%dfC|6D1etA3jly5N#dgd{@3~kV2Ru* TNORb+00000NkvXXu0mjfu22qV diff --git a/public/img/icons/pois/poi-marker-icon-20.png b/public/img/icons/pois/poi-marker-icon-5.png similarity index 100% rename from public/img/icons/pois/poi-marker-icon-20.png rename to public/img/icons/pois/poi-marker-icon-5.png diff --git a/public/img/icons/pois/poi-marker-icon-6.png b/public/img/icons/pois/poi-marker-icon-6.png index 10e045457268b3cc0f8c7c8212945cd40904b711..cdb669214d6e579f8adc04091dd6ae79a1b400df 100644 GIT binary patch delta 1387 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 LNkvXXu0mjf(zmfI