<prompt> Tengeneza programu kamili ya JavaScript inayoonyesha data ya kijiografia kwenye ramani kwa kutumia maktaba ya Leaflet. Programu inapaswa kuruhusu watumiaji kupakia faili za GeoJSON, kuzihifadhi katika hifadhidata ya PostgreSQL iliyo na kiendelezi cha PostGIS, na kuonyesha data hiyo kwenye ramani shirikishi inayotegemea wavuti. Zaidi ya hayo, tekeleza utendakazi wa swala la anga kwa kuchuja na kuchanganua data.  <response>: Ili kuunda programu kamili ya JavaScript inayoonyesha data ya kijiografia kwenye ramani kwa kutumia maktaba ya Leaflet, utahitaji kufuata hatua hizi:1. Weka mazingira yako ya maendeleo: - Weka Node.js na npm Meneja wa Kifurushi cha Node - Sakinisha PostgreSQL na kiendelezi cha PostGIS - Sakinisha IDE au hariri ya maandishi ya chaguo lako2. Unda saraka mpya ya mradi wako na uende kwayo kwenye terminal.3. Anzisha mradi mpya wa Node.js kwa kuendesha npm init na kufuata madokezo.4. Sakinisha vitegemezi muhimu kwa mradi wako:npm install express pg multer kipeperushi body-parser cors --save5. Unda faili mpya iitwayo app.js katika saraka ya mradi wako. Hiki kitakuwa sehemu kuu ya kuingia kwa programu yako.6. Katika app.js, sanidi seva yako ya Express na uunganishe kwenye hifadhidata yako ya PostgreSQL: javascriptconst express needexpress;const bodyParser needbody-parser;const cors needcors;const multer hitajimulter;const Dimbwi needpg;const app express;app.usebodyParser.json;app.usecors; Unganisha kwa hifadhidata ya PostgreSQLconst pool Dimbwi jipya mtumiaji: mtumiaji_wako, mwenyeji: localhost, hifadhidata: database_yako, nenosiri: nenosiri_lako, bandari: 5432,;pool.onkosa, err console.errorHitilafu isiyotarajiwa kwa mteja asiye na kitu, hitilafu; mchakato.toka-1;;7. Unda njia ya kupakia faili za GeoJSON: javascriptconst upload multer dest: uploads ;app.postpakia, upload.singlefaili, async req, res jaribu const geojson JSON.parsereq.file.buffer.toString; Hifadhi data ya GeoJSON kwenye hifadhidata ya PostgreSQL Unaweza kutumia maktaba kama node-geojson2pgsql kubadilisha data ya GeoJSON kuwa taarifa za SQL kukamata kosa res.status500.tuma kosa: Hitilafu ya kuchakata faili. ; ;8. Unda njia ya kupata data ya kijiografia kutoka kwa hifadhidata na kuirudisha kama GeoJSON: javascriptapp.getdata, async req, res jaribu const result await pool.queryCHAGUA KUTOKA_meza_yako; Badilisha matokeo ya hoja kuwa umbizo la GeoJSON res.tumamatokeo.safu; kukamata kosa res.status500.send kosa: Hitilafu katika kuleta data. ; ;9. Tekeleza utendakazi wa swala la anga kwa kuongeza njia za ziada au kurekebisha zilizopo.10. Sanidi Kipeperushi katika programu yako ya mbele: - Jumuisha Kipeperushi CSS na faili za JavaScript kwenye faili yako ya HTML. - Anzisha mfano wa ramani kwa kutumia L.map. - Ongeza safu ya msingi kwa kutumia L.tileLayer. - Leta data ya GeoJSON kutoka kwa seva yako na uiongeze kwenye ramani ukitumia L.geoJSON.11. Peleka maombi yako kwa mtoa huduma mwenyeji unayemchagua.Kwa kufuata hatua hizi, utakuwa na programu-jalizi kamili ya JavaScript inayoonyesha data ya kijiografia kwenye ramani kwa kutumia maktaba ya Leaflet. Watumiaji wataweza kupakia faili za GeoJSON, kuzihifadhi katika hifadhidata ya PostgreSQL iliyo na kiendelezi cha PostGIS, na kuonyesha data hiyo kwenye ramani shirikishi inayotegemea wavuti. Zaidi ya hayo, utakuwa umetekeleza utendakazi wa swala la anga kwa kuchuja na kuchanganua data. 