Teknologjitë e Geographic Information System(GIS) shërbejnë për të marrë, për të organizuar, për të analizuar, për të menaxhuar dhe për të paraqitur të dhëna gjeografike. Në këtë leksion kemi në fokus aplikimin e teknologjive dhe shërbimeve GIS, konkretisht driving directions në aplikacionet WEB. Driving directions bën të mundur gjetjen dhe shfaqjen e një rrjeti rrugor për të lidhur midis tyre dy ose me shumë vendodhje gjeografike në hartë. Metodat që implementon driving directions mundësojnë përdorimin e një informacioni gjeografik që orienton individët të arrijnë në destinacion.
Do të shikojmë se si mund të përdorim hartat e Google Maps si komponenten kryesore të sistemit të informatizimit të rrjetit rrugor në qytetin e Tiranës për udhëtarët duke vënë në dispozicion funksionalite si:
- Shfaqja e rrugëve të mundshme që lidhin dy ose më shumë pozicione gjeografike
- Shfaqja e rrugëve të mundshme në varësi të tipit të transportit
- Shfaqja e të dhënave sasiore në km,orë krahasuese midis disa rrugeve të ndryshme që lidhin dy pozicione të ndryshme gjeografike.
- Shfaqja e një përshkrimi tekstual që orienton udhëtarët drejt destinacionit.
Hartat
Hartat si mjeti më i përshtatshëm për vizualizimin e rrjeteve rrugore, përbëjnë bazën e cdo aplikimi web që implementon teknologjitë GIS për ti ofruar përdoruesve informacionin që ata kërkojnë. Qytetarë apo turistë që vizitojnë për herë të parë Tiranën kanë nevojnë të kenë me vete një guidë informuese që i njeh ata me qëndrat,rrugët,objektet kryesore të qytetit. Një informacion të tillë ata mund ta marrin nga një ciceron që i shoqëron gjatë gjithë udhëtimit te tyre apo nga fletëpalosje dhe revista të ndryshme që kanë në përmbajtje te dhëna të cunguara dhe statike. Pavarësisht se metoda të tilla kanë shërbyer si zgjidhje deri tani, në të dyja rastet e sipërpërmenduara informacioni që individi merr nuk mund të krahasohet me rezultatet që prodhon implementimi i teknologjisë në këtë drejtim. Integrimi i hartave në aplikimet web shërben si një zgjidhje dinamike dhe interaktive e cila e bën turistin/qytetarin të ndihet i pavarur, dhe i sigurt për të eksploruar hapësira të panjohura, sepse zotëron një informacion gjeografik të plotë menaxheri të cili është vete ai.
Shërbimet e Google Map
Google Map vë në dispozicion API Web Services, të cilat përkufuzohen si një koleksion ndërfaqesh HTTP për shërbimet e Google duke mundësuar të dhëna gjeografike për aplikimet me harta që përdorim. Shërbimet web klasifikohen në disa grupe kryesore: shërbimi për gjetjen e rrugës (më të mirë) midis dy ose më shumë vendndodhjeve të caktuara në hartë, shërbimi për përcaktimin e vendodhjes aktuale dhe shfaqja e saj në hartë, shërbimi për shfaqjen e kohës (time zone) në hartat e google etj. Por natyrshëm lind pyetja, cfarë është një web service? API i sistemit të informacionit gjeografik që vë në dispozicion Google, i njohur ndryshe si Google Maps, përdor web servicet si ndërfaqe për të marre nga shërbime të jashtme të dhënat gjeografike dhe përdorimin e tyre në aplikimet tona me harta. Këto web service kryejnë kërkesa HTTP drejt një URL specifike duke i shoqëruar me parametrat dhe argumentat përkatëse të shërbimit. Në përgjithësi të dhënat që kthejnë këto shërbime janë në formatin JSON ose XML të cilat më tej procesohen ose interpretohen nga aplikimi ynë. Studimi jonë orientohet drejt shërbimit të gjetjes së rrugëve dhe distancave ndërmjet pozicioneve te ndryshme gjeografike .
Driving Directions
Ky shërbim gjen dhe shfaq të gjitha rrugët sesi mund të zhvendosemi(duke përdorur metoda të ndryshme transporti) nga një vendndodhje në një tjetër.
Figura1: Shfaqja e rezultateve si bashkësi përshkrimesh tekstuale
Figura2:Shfaqja e rrugëve nga origjina në destinacion në hartë
Objekti që ofron këtë funksionalitet është DirectionsService. Ky objekt komunikon me shërbimin Google Map API Directions duke marr kërkesa për orientimin në hartë dhe kthen rezultatin e gjetur. Rezultatet e marra mund ti menaxhojmë vete ne ose të përdorim objektin DirectionsRenderer për të pasqyruar automatikisht këto rezultate në hartë. Për gjetjen e rrugës(drejtimit) specifikohet origjina dhe destinacioni, si tekst(string) ose si vlera të objektit LatLng (shembull: “Tirane, Albania” ose google.maps. LatLng(41.328071,19.818628) -koordinatat ne gradë për Tiranën ). Rezultatet e kërkimit i paraqiten në disa forma përdoruesve, si një bashkësi rrugësh të mundshme për të arritur në destinacionin e dhënë (si polyline), ose si një seri përshkrimesh tekstuale të vendosur brenda një elementi <div> si në pamjet e figurave 1 dhe 2.
Më poshtë do të shohim sesi implementohet shërbimi Driving Directions për rastin e aplikimit web për shfaqjen e rrugëve që lidhin midis tyre dy vendndodhje, ku origjina dhe destinacioni përcaktohen në dy fusha teksti.
Kërkesa për rrugëzim(orientim rrugor)
Thirrja e shërbimit bëhet në mënyrë asinkrone duke qënë se Google Map API komunikon me një server të jashtëm. Objekti për thërritjen e këtij shërbimi është DirectionsService i cili vendos lidhje me këtë shërbim duke thërritur metodën route() të tij. Kjo metodë brenda saj specifikon një objekt DirectionRequest i cili ka vecoritë e më poshtme: ndër fushat më kryesore që një objekt i tillë duhet të mbushe janë të paktën origjina dhe destinacioni të cilat jepen ose përmes koordinatave në gradë ose përmes një string (psh “Tiranë, Albania”).
{
origin: LatLng | String,
destination: LatLng | String,
travelMode: TravelMode,
transitOptions: TransitOptions,
unitSystem: UnitSystem,
durationInTraffic: Boolean,
waypoints[]: DirectionsWaypoint,
optimizeWaypoints: Boolean,
provideRouteAlternatives: Boolean,
avoidHighways: Boolean,
avoidTolls: Boolean
region: String
}
Bazuar në karakteristikat e objektit DirectionsRequest krijimi tij e ilustrojmë duke ju referuar rastit për gjetjen e rrugës Tiranë-Vlore:
{
origin: "Tirane, AL",
destination: "Vlore, AL",
waypoints: [
{
location:"Durres, AL",
stopover:false
},{
location:"Fier, OK",
stopover:true
}],
provideRouteAlternatives: false,
travelMode: TravelMode.DRIVING,
unitSystem: UnitSystem.IMPERIAL
}
Ne këtë mënyrë kemi thënë më gjej rrugët automobilistike nga (origin: "Tirane, AL") në (destination: origin: "Vlore, AL") duke përdorur disa pika kalimi të ndërmjetme, përcaktimin e të cilave e bëjmë në brendësi të atributit waypoints në dy mënyrat që kemi cilësuar dhe më sipër, me vlera numerike(objekti LatLng) ose text.
Karakteristike e këtij shërbimi është mundësia që të krijon për të zgjedhur metoda të ndryshme transporti nga origjina në destinacion. Google Maps Driving Directions mundëson jo vetëm rrugëtimin për në destinacione të ndryshme kur lëvizja bëhet duke përdorur rrjetin rrugor automobilistik por dhe për rastet kur përdoret rrjeti rrugor për këmbësore apo për bicikleta. Përcaktimi i mënyrës sesi do te arrijmë në destinacion bëhet duke i dhënë një prej vlerave të më poshtme atributit travelMode:
· google.maps.TravelMode.DRIVING : ky është dhe përcaktimi default në kërkimin e rezultateve, bazuar në rrjetin rrugor për automjete.
· google.maps.TravelMode.BICYCLING : gjen të gjitha mënyrat e kalimit për në destinacion në rrugë të kalushme nga bicikleta .
· google.maps.TravelMode.TRANSIT : rezultati i kthen të gjitha rrugët e kalueshme për në destinacion përmes pikave te transportit publik transit.
· google.maps.TravelMode.WALKING : kërkon të gjitha rrugët dhe trotuaret e kalueshme nga këmbësorët për të arritur në destinacion.
Pasqyrimi i rrugëve të gjetura në hartë
DirectionsResult mban rezultatet e query-it për gjetjen e rrugës/ve. Rezultatet e marra mund tetrajtohen në dy mënyra: vendosim të kujdesemi vet për vizualizimin e tyre ne hartë ose duke përdorur objektin DirectionsRenderer i cili shfaq ne mënyrë automatike rezultatet në hartë. Gjatë afishimit të rezultateve që marrim nga DirectionsResult , duke përdorur DirectionsRenderer, duhet të kujdesemi per:
1. Krijimin e një objekti DirectionsRenderer .
2. Thërritjen e metodës setMap() mbi një render në mënyrë që të bëjmë lidhjen e tij më hartën që I kalohet si parametër.
3. Metoden setDirections() ne render, ne menyre qe te marr rezultatet e DirectionsResult. Vet renderi eshte nje object MVC, dhe kap ne menyre automatike ngjarjet qe modifikojne te dhenat duke reflektuar në hartë ndryshimet përkatëse në rrugëtim. DirectionsRenderer shfaq një polyline midis dy destinacioneve duke vendosur markera në origjinë , në destinacion dhe në cdo pikë tjetër të ndërmjetme ku kalon rruga(përcaktimin e të cilave e bëjmë përmes atributit waypoints). Më poshtë tregohet mënyra e implementimit të të gjitha elementeve të sipërpërmendura për rastin e aplikimit tonë:
<script type="text/javascript">
var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();
var map = new google.maps.Map(document.getElementById('map'), {
center: new google.maps.LatLng(41.38,19.81),
zoom:12,
mapTypeId: google.maps.MapTypeId.ROADMAP });
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById('panel'));
function directions()
{
var request = {
origin: document.getElementById('nga').value,
destination: document.getElementById('tek').value,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
}
});
}
</script>
Në trupin HTML do të kishim :
<body style="font-family: Arial; font-size: 12px;">
Nga: <input type="text" id="nga"/></br>
Tek: <input type="text" id="tek"/></br>
<input type="button" id="navigo" value="Navigo" onclick="directions()"/>
<div style="width: 600px;">
<div id="map" style="width: 500px; height: 400px; float: left;"></div>
<div id="panel" style="width: 500px; float: right;"></div>
</div>
Pamja në hartë për dy pozicionet e zgjedhura do të ishte si në figurën 3:
Hapi 1: Bëhet kërkimi përmes vlerave të vendosura në fushat e tekstit
Hapi 2: Shfaqja e rezultateve (rrugës që lidh dy vendodhjet gjeografike) në dy mënyra përmes hartës dhe përmes përshkrimeve textuale që të cojnë nga pika origjinë në atë destinacion.
Figura 3: Paraqitja në hartë e rrugës nga rr.“Mine Peza” ne rr.“Siri Kodra”