earth.1OOOLieues.net

ServeurUpdateOnlinephp

AccueiL ::
fr : en : es





PresentatiOn

ExpositiOn
exibition
ExpositiOn


InscriptiOn
register
InscriptiOn

TeleChargement
Download
TeleChargement

InstallatiOn
DecOllage
TakeOf
DecOllage


AiDe
Help
ayuda

ContaCt

PilOtes

TraficEnCours
Vols



PreSse


LienS


LocalTechniQue
:: Vous êtes 38.107.179.237
<< online.php Serveur1OOOLieues listextes.php >>


le fichier update.online.php



est un fichier de DialogueDescendant : il est appelé et s'adresse à Google Earth
Il est appelé automatiquement avec online.php avec un cookie contenant la liste des pilotes connus en vol par le client


réponse


Il interroge la base 1000_online pour en extraire les pilotes ayant bougé dans la dernière minute
un fichier kmz qui contient :



paramètres


passés par " <viewFormat>BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]; $pilote </viewFormat>"
pilote : le nom du pilote qui demande la liste
cookie contient la liste des pilotes connus : joj=envol;biol=envol; .....

exemple


http://earth.1000lieues.net/server/update.online.php?BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth];CdrikO&LeonarDeVinci=envol;SantosDumont=envol


code


<?php
//l'appel est de la forme :
//<viewFormat>BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth];CdrikO</viewFormat>

include("settings.php");
include("vignette.php");

$bbox=$_GET['BBOX'];


$nargs=count($_GET);

$donnees=explode(";",$bbox);
$box=$donnees[0]; 
$pilotes = array();



$moimeme=$donnees[1];///nom du pilote demandeur



///liste des pilotes déjà connus par le client
while (list($pilote, $etat) = each($_GET)) {
if ($pilote!="BBOX"){///la suite est de la forme jojo=envol;bill=ausol;tartempion=looping
///$pilote est le nom du premier pilote, le reste doit être dépouillé
$listcookie=explode(";",$etat);
$etat=$listcookie[0];
///premier pilote
$pilotes[$pilote]="posé";

///dépouillement du reste
for ($i = 1; $i < count($listcookie); $i++) {
$infos=explode("=",$listcookie[$i]);
$pilote=$infos[0];
$etat=$infos[1];

$pilotes[$pilote]="posé";
}
   }
}

///$pilotes contient maintenant la liste des pilotes connus par le client


////nouvelles infos venant du serveur
// Connexion et sélection de la base
$link = mysql_connect($Msql_host, $Msql_user, $Msql_psword) or die("Impossible de se connecter");
//echo "Connexion réussie";
mysql_select_db($Msql_DB) or die("Could not select database");

// Exécuter des requêtes SQL


//SELECT *  FROM `1000_online` WHERE `pilote` NOT LIKE 'CdrikO' AND `lastmodif` >DATE_SUB(NOW(),INTERVAL 20 MINUTE) 
//selectionne les pilotes qui ne sont pas moimême et qui ont été modifiés dans la dernière minute
//$query = "SELECT pilote,longitude,latitude,altitude,head FROM 1000_online where pilote not like ".$moimeme." and lastmodif > DATE_SUB(NOW(),INTERVAL 1 DAY)";
$query = "SELECT * FROM 1000_online where pilote != '".$moimeme."' and lastmodif > (NOW()-100)";

//$query = "SELECT * FROM 1000_online ";

$result = mysql_query($query) or die("Query failed");

$update="";
while ($ligne = mysql_fetch_assoc($result)) {//tous les pilotes en vol

if (array_key_exists($ligne["pilote"], $pilotes)) {//je connais déjà le pilote
///mise à jour de sa position

//s'il est dans le champ, l'affiche comme un tapis volant

///mise à jour de son image si elle a changé

///s'il est loin, l'affiche dans le hud



  
}else{///c'est un pilote que je ne connaissait pas

//crée la boite du pilote
$update=$update.nouveauPilote($ligne["pilote"], $ligne["longitude"], $ligne["latitude"], $ligne["altitude"], $ligne["head"]);
$retour=$retour.$ligne["pilote"]." a été créé<br>";

}

//if (isset($login_array[$user_name])){
 $pilotes[$ligne["pilote"]]="envol";
//}






}
// Libération des résultats
mysql_free_result($result);

// Fermeture de la connexion
mysql_close($link);










///mise à jour du cookie
while (list($pilote, $etat) = each($pilotes)) {
if($etat=="posé"){
if ($pilote!=""){
$update=$update.efface($pilote);
$retour=$retour.$pilote." est effacé<br>";
//$cookie=$cookie.$pilote."=posé;";
}
}else{
$cookie=$cookie.$pilote."=".$etat.";";
$retour=$retour.$pilote." est $etat <br>";}
}
///efface le dernier ;
$cookie=substr($cookie,0,-1);






/*<?xml version=\"1.0\" encoding=\"UTF-8\"?>*/

$kml="<kml xmlns=\"http://earth.google.com/kml/2.2\">
<NetworkLinkControl>
      <cookie>".$cookie."</cookie>
   <linkName>Dernières Nouvelles pour $moimeme </linkName>
<linkSnippet maxLines=\"20\"><![CDATA[ $retour <br><br> * $cookie *]]></linkSnippet>
   <linkDescription></linkDescription>
<Update> 
  <targetHref>".$server."online.new.php?pilote=".$moimeme."</targetHref> 
".$update."
</Update>
</NetworkLinkControl>
</kml>";

include_once("kmz.php");
kmz($kml);
//echo ($kml);

////fonctions intégrées
function efface($pilote){
$bloc="<Delete>
  <Folder targetId=\"".$pilote."\"></Folder>
  </Delete> ";
return $bloc;

}



function nouveauPilote($pilote, $longitude, $latitude, $altitude, $head){
$vignette=vignette($pilote);
if (file_exists("zamis/".$pilote.".jpg")) {
$image="zamis/".$pilote.".jpg";
}else{
$image="defaut.jpg";
}

$cap=360-$head;
$nouveauBloc="<Create>
<Folder targetId=\"actuellement en vOl\">
<Folder id=\"".$pilote."\"><name>$pilote</name><styleUrl>#fermé</styleUrl>
<description><![CDATA[ $pilote<br> ]]> </description>
<Placemark><name>$pilote</name><styleUrl>#sans_icone</styleUrl>
<LookAt id=\"vue_".$pilote."\">
  <longitude>".$longitude."</longitude>  
  <latitude>".$latitude."</latitude>    
  <altitude>".$altitude."</altitude>       
  <heading>".$cap."</heading>         
  <tilt>70</tilt>              
  <range>2000</range>              
  <altitudeMode>absolute</altitudeMode>   
</LookAt>
<Point id=\"etiquette_".$pilote."\"><coordinates> $longitude, $latitude, $altitude </coordinates>
 <altitudeMode>absolute</altitudeMode>
</Point></Placemark>
<GroundOverlay id=\"tapis_".$pilote."\"><color>75ffffff</color>
			<Icon>
				<href>".$server.$image."</href>
				<viewBoundScale>0.005</viewBoundScale>
			</Icon>
			<altitude>".$altitude."</altitude>
			<altitudeMode>absolute</altitudeMode>
			<LatLonBox>
				<north>".($latitude+0.0003)."</north>
				<south>".($latitude-0.0003)."</south>
				<east>".($longitude-0.0004)."</east>
				<west>".($longitude+0.0004)."</west>
				<rotation>".$cap."</rotation>
			</LatLonBox>
</GroundOverlay>
	<ScreenOverlay id=\"flech_".$pilote."\" >
		<Icon>
			<href>".$server.$vignette."</href>
		</Icon>
		<overlayXY x=\"0.5\" y=\"-1\" xunits=\"fraction\" yunits=\"fraction\"/>
		<screenXY x=\"0.5\" y=\"0.9\" xunits=\"fraction\" yunits=\"fraction\"/>
		<rotationXY x=\"0.5\" y=\"0.5\" xunits=\"fraction\" yunits=\"fraction\"/>
<rotation>45</rotation>
	<size x=\"-1\" y=\"-1\" xunits=\"fraction\" yunits=\"fraction\"/> 
	</ScreenOverlay>

</Folder>
</Folder>

  </Create> ";
return $nouveauBloc;
}
?>

Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]