<prompt> Tengeneza programu ya wavuti ya JavaScriptTypeScript inayounganishwa na API ya Ramani za Google ili kuonyesha alama kwa maeneo yaliyobainishwa na mtumiaji na kukokotoa njia fupi zaidi kati ya maeneo haya kwa kutumia algoriti ya Dijkstra.  <response>: Ili kuunda programu ya wavuti inayounganishwa na API ya Ramani za Google na kukokotoa njia fupi zaidi kati ya maeneo yaliyoainishwa na mtumiaji kwa kutumia algoriti ya Dijkstra, fuata hatua hizi:1. Sanidi faili ya HTML kwa programu yakoUnda faili mpya ya HTML inayoitwa index.html na uongeze nambari ifuatayo ili kusanidi muundo wa msingi wa ukurasa:html Kitafuta Njia fupi Zaidi kichwa mwili htmlBadilisha YOUR_API_KEY kwa ufunguo wako halisi wa API ya Ramani za Google.2. Unda faili ya JavaScriptTypeScript kwa mantiki ya programu yakoUnda JavaScript mpya au faili ya TypeScript inayoitwa app.js au app.ts, ukipendelea TypeScript na uongeze msimbo ufuatao ili kuanzisha ramani: javascriptruhusu ramani;acha alama ;kazi initMap ramani new google.maps.Mapdocument.getElementByIdmap, kituo: lat: -34.397, lng: 150.644 , kukuza: 8, ; map.addListenerbonyeza, tukio addMarkerevent.latLng; ;kazi addMarkermahali const marker new google.maps.Marker nafasi: eneo, ramani: ramani, ; alama.sukumaalama;Msimbo huu huanzisha ramani na kuongeza msikilizaji wa tukio la kubofya kwake. Mtumiaji anapobofya kwenye ramani, alama mpya huongezwa kwenye eneo lililobofya.3. Tekeleza algorithm ya DijkstraOngeza msimbo ufuatao kwenye faili yako ya app.js au app.ts ili kutekeleza kanuni za Dijkstra: javascriptkazi dijkstraAlgorithmstartIndex const distances ; const alitembelea ; kwa wacha i 0; i markers.length; i umbalii Infinity; alitembeleai uongo; umbalistartIndex 0; kwa wacha i 0; i markers.length - 1; i const minDistanceIndex findMinDistanceumbali, uliotembelewa; alitembeleaminDistanceIndex kweli; kwa acha j 0; j markers.length; j ikiwa !alitembeleaj const distance google.maps.geometry.spherical.computeDistanceBetweenmarkersminDistanceIndex.getPosition, markersj.getPosition; ikiwa umbaliminDistanceIndex umbali masafaj umbalij umbaliminDistanceIndex umbali; umbali wa kurudi;function findMinDistanceumbali, uliotembelewa let minValue Infinity; acha minIndex -1; kwa acha i 0; i distances.length; i ikiwa !alitembeleai masafai minValue minValue masafai; minIndex i; kurudi minIndex;Nambari hii inatekeleza algoriti ya Dijkstra kwa kutumia maktaba ya jiometri ya Ramani za Google ili kukokotoa umbali kati ya pointi mbili duniani.4. Piga hesabu na uonyeshe njia fupi zaidiIli kuhesabu na kuonyesha njia fupi zaidi kati ya maeneo yote yaliyobainishwa na mtumiaji, ongeza msimbo ufuatao kwenye faili yako ya app.js au app.ts: javascriptkazi hesabuShortestRoute const distances dijkstraAlgorithm0; const shortestDistanceIndex findMinDistancedistances.slice1, Arraymarkers.length - 1.jazasivyo 1; const shortestPath new google.maps.Polyline njia: alama0.getPosition, vialamashortestDistanceIndex.getPosition, geodesic: kweli, strokeColour: FF0000, kiharusiOpacity: 1.0, Uzito wa kiharusi: 2, ; shortestPath.setMapramani; Ongeza kitufe kwenye ukurasa wa HTML kwa kukokotoa njia fupi zaidiconst button document.createElementbutton;button.textContent Kokotoa Njia Fupi Zaidi;button.addEventListenerbonyeza, hesabuShortestRoute;hati.mwili.ambatishaMtotokifungo;Msimbo huu huongeza kitufe kwenye ukurasa wa wavuti ambao, unapobofya, hukokotoa njia fupi zaidi kati ya maeneo yote yaliyoainishwa na mtumiaji na kuionyesha kwenye ramani kwa kutumia polyline.Sasa una programu ya msingi ya wavuti ya JavaScriptTypeScript ambayo inaunganishwa na API ya Ramani za Google, inaruhusu watumiaji kuongeza alama kwa kubofya kwenye ramani, na kukokotoa njia fupi kati ya maeneo haya kwa kutumia algoriti ya Dijkstra. 