1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144
| // tableau des arrêts
tabloArrets = new Array();
function taAffich ()
{
var taa ;
for (var x = 0; x < tabloArrets.length; x++)
{
taa = taa + tabloArrets[x].Affichage() ;
}
alert(tabloArrets.length);
return taa;
}
function Arret (pGirouette, pHoraire, pLigne, pService, pNumParc)
{
this.pGirouette = pGirouette;
this.pHoraire = pHoraire;
this.pLigne = pLigne;
this.pService = pService;
this.pNumParc = pNumParc;
// un toString
this.Affichage = function affichage()
{
var txtAffich = 'Destination : ' + this.pGirouette + '\n'
+ 'Horaire : ' + this.pHoraire + '\n'
+ 'Ligne : ' + this.pLigne + '\n'
+ 'S/V : ' + this.pService + '\n'
+ 'N° parc : ' + this.pNumParc + '\n' ;
return txtAffich ;
}
}
function connexionWS(adressews)
{
var req = GXmlHttp.create();
req.open("GET", adressews, true);
req.onreadystatechange = function()
{
if (req.readyState === 4 && req.status < 299)
{
var docXml = GXml.parse(req.responseText);
// on crée des variables de type Array, qui recoivent comme valeur les balises choisies dans le document xml
var destination = docXml.getElementsByTagName('ax21:codGirouette');
var min = docXml.getElementsByTagName('ax21:horaire');
var ligne = docXml.getElementsByTagName('ax21:nuLiCo');
var service = docXml.getElementsByTagName('ax21:vehicule');
var numParc = docXml.getElementsByTagName('ax21:parc');
tabloArrets = new Array();
for (var n = 0; n < min.length; n++)
{
var unArret = new Arret (destination[n].firstChild.nodeValue, min[n].firstChild. nodeValue, ligne[n].firstChild.nodeValue, service[1].firstChild.nodeValue, numParc[1]. firstChild.nodeValue) ;
tabloArrets[n] = unArret ;
}
}
}
req.send(null);
}
// méthode de création de marqueurs
function createMarker(pt, cod, info)
{
var marker = new GMarker(pt);
marker.value = cod ;
// on ajoute au gestionnaire d'événements
GEvent.addListener (marker, "click", function()
{
var adrsw = 'http://localhost/stage/proxy.php?url=http://localhost:8080/axis2/services/Serveur/passageArret&pCodArret=' + marker.value ;
connexionWS(adrsw) ;
marker.openInfoWindowHtml (info + ' ' + taAffich ());
});
return marker;
}
function load()
{
if (GBrowserIsCompatible())
{
// on crée une nouvelle map que l'on assigne au div du même nom
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(47.624562, 6.856155), 13);
// on définit le panneau de zoom
map.addControl(new GSmallMapControl());
// pour passer de vue satellite à vue plan
map.addControl(new GMapTypeControl());
// Affichage : on va lire le fichier xml et on place les marqueurs
var request = GXmlHttp.create();
request.open("GET", "data2.xml", true);
request.onreadystatechange = function()
{
if (request.readyState == 4)
{
var xmlDoc = GXml.parse(request.responseText);
// on récupère le tableau avec chaque arrêt
var arrets = xmlDoc.documentElement.getElementsByTagName("arret");
// pour chaque élément du tableau on crée un marqueur
for (var i = 0; i < arrets.length; i++)
{
// on récupère les infos de chaque arrêt
var codArret = arrets[i].getAttribute("cod");
var nomArret = arrets[i].getAttribute("nom");
var lat = parseFloat(arrets[i].getAttribute("lat"));
var lon = parseFloat(arrets[i].getAttribute("lon"));
// on définit les coordonnées du marqueur
var point = new GLatLng(lat, lon);
// on crée le marqueur
var ifo = nomArret + ' (' + codArret + ')' ;
var marker = createMarker(point, codArret, ifo) ;
// on place le marqueur sur la carte
map.addOverlay(marker);
}
}
}
request.send(null);
}
} |
Partager