Bonjour je me nomme gnanzou,
je vous écris ce matin pour vous demander de l'aide.je travail sur un projet de géolocalisation.Il consiste à localiser des véhicules équipés de modules gps.J'ai décidé de le faire via un site internet en utilisant PHP,mais je suis confronté à un problème qui est le suivant: mon code de traitement de la trame ne marche pas et en plus je sais pas comment faire pour afficher les coordonnées gps (long et lat)
Aidez moi s'il vous plait
*merci pour votre compréhension
s'il vous plait aidez moi avoir les différentes commandes .
<?php
function convdec($coord, $discr) {
$coord=$coord/100;
$dec=intval($coord)+($coord-intval($coord))*100/60;
if ($discr=="W" || $discr== "S") {
$dec=$dec*-1;
return $dec;
} else {
return $dec;
}
}
function read_nmea($port, $baud, $refresh)
{
global $server, $user, $pass, $db, $refresh, $unit;
switch($unit) {
case "kmh":
$coeff=1.852;
break;
case "mph":
$coeff=1.1507794 ;
break;
}
$link = mysql_connect($server, $user, $pass);
if (!$link) {
die('Impossible to connect to database : ' . mysql_error());
}
mysql_select_db($db, $link);
// exec("mode ".$port." BAUD=".$baud." PARITY=N data=8 stop=1 xon=off");
$fp = fsockopen ("127.0.0.1", 5332, $errno, $errstr, 30);
if (!$fp)
{
die ("$errstr ($errno)");
}
$point=0;
while (!$point)
{
$string=fgets($fp, 4096);
if (substr($string,0,6)=="\$GPRMC") {
list($sentence, $time, $status, $latitude, $NS, $longitude, $EW, $speed, $course, $date, $magvar, $magvarEW)= explode(",", $string);
$latd=convdec($latitude, $NS);
$lond=convdec($longitude, $EW);
if (!$init || $dist1>=$distance){
$init=1;
$lat1=$latd;
$lon1=$lond;
$sql="INSERT INTO points
(Nom , sentence , time , status , latitude , NS , longitude , EW , speed , course , date , magvar , magvarEW , latd , lond )
VALUES (\"test\", \"$sentence\", \"$time\", \"$status\", \"$latitude\", \"$NS\", \"$longitude\", \"$EW\", \"$speed\", \"$course\", \"$date\", \"$magvar\", \"$magvarEW\", $latd, $lond );" ;
$qry = mysql_query($sql, $link);
echo "Latitude : ".", ".round($latd,4).", Longitude : ".round($lond,4).", Speed : ".$speed*$coeff.", Course : ".$course."<br>";
$point++;
}
}
}
fclose ($fp);
mysql_close($link);
}
function clearTrack() {
include ("config.php");
$link = mysql_connect($server, $user, $pass);
if (!$link)
{
die('Impossible to connect to database : ' . mysql_error());
}
mysql_select_db($db, $link);
$sql="DELETE FROM points;" ;
$qry = mysql_query($sql, $link);
$sql="ALTER TABLE points PACK_KEYS =0 CHECKSUM =0 DELAY_KEY_WRITE =0 AUTO_INCREMENT =1;" ;
$qry = mysql_query($sql, $link);
mysql_close($link);
}
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$stop = $_POST['Stop'];
if(!empty($stop)) {
die("session terminated, do not forget to save your track in Google Earth");
}
$port = trim($_POST['port']);
$baud = trim($_POST['baud']);
$refresh = trim($_POST['refresh']);
$unit = trim($_POST['unit']);
$clear = $_POST['Clear'];
if(!empty($clear)) {
clearTrack();
}
include ("config.php");
global $server, $user, $pass, $db, $refresh,$unit;
read_nmea($port, $baud, $refresh);
?>
aidez moi s'il vous plait
Modifié par gnanzou (02 Feb 2012 - 10:57)
je vous écris ce matin pour vous demander de l'aide.je travail sur un projet de géolocalisation.Il consiste à localiser des véhicules équipés de modules gps.J'ai décidé de le faire via un site internet en utilisant PHP,mais je suis confronté à un problème qui est le suivant: mon code de traitement de la trame ne marche pas et en plus je sais pas comment faire pour afficher les coordonnées gps (long et lat)
Aidez moi s'il vous plait
*merci pour votre compréhension
s'il vous plait aidez moi avoir les différentes commandes .
<?php
function convdec($coord, $discr) {
$coord=$coord/100;
$dec=intval($coord)+($coord-intval($coord))*100/60;
if ($discr=="W" || $discr== "S") {
$dec=$dec*-1;
return $dec;
} else {
return $dec;
}
}
function read_nmea($port, $baud, $refresh)
{
global $server, $user, $pass, $db, $refresh, $unit;
switch($unit) {
case "kmh":
$coeff=1.852;
break;
case "mph":
$coeff=1.1507794 ;
break;
}
$link = mysql_connect($server, $user, $pass);
if (!$link) {
die('Impossible to connect to database : ' . mysql_error());
}
mysql_select_db($db, $link);
// exec("mode ".$port." BAUD=".$baud." PARITY=N data=8 stop=1 xon=off");
$fp = fsockopen ("127.0.0.1", 5332, $errno, $errstr, 30);
if (!$fp)
{
die ("$errstr ($errno)");
}
$point=0;
while (!$point)
{
$string=fgets($fp, 4096);
if (substr($string,0,6)=="\$GPRMC") {
list($sentence, $time, $status, $latitude, $NS, $longitude, $EW, $speed, $course, $date, $magvar, $magvarEW)= explode(",", $string);
$latd=convdec($latitude, $NS);
$lond=convdec($longitude, $EW);
if (!$init || $dist1>=$distance){
$init=1;
$lat1=$latd;
$lon1=$lond;
$sql="INSERT INTO points
(Nom , sentence , time , status , latitude , NS , longitude , EW , speed , course , date , magvar , magvarEW , latd , lond )
VALUES (\"test\", \"$sentence\", \"$time\", \"$status\", \"$latitude\", \"$NS\", \"$longitude\", \"$EW\", \"$speed\", \"$course\", \"$date\", \"$magvar\", \"$magvarEW\", $latd, $lond );" ;
$qry = mysql_query($sql, $link);
echo "Latitude : ".", ".round($latd,4).", Longitude : ".round($lond,4).", Speed : ".$speed*$coeff.", Course : ".$course."<br>";
$point++;
}
}
}
fclose ($fp);
mysql_close($link);
}
function clearTrack() {
include ("config.php");
$link = mysql_connect($server, $user, $pass);
if (!$link)
{
die('Impossible to connect to database : ' . mysql_error());
}
mysql_select_db($db, $link);
$sql="DELETE FROM points;" ;
$qry = mysql_query($sql, $link);
$sql="ALTER TABLE points PACK_KEYS =0 CHECKSUM =0 DELAY_KEY_WRITE =0 AUTO_INCREMENT =1;" ;
$qry = mysql_query($sql, $link);
mysql_close($link);
}
error_reporting(E_ERROR | E_WARNING | E_PARSE);
$stop = $_POST['Stop'];
if(!empty($stop)) {
die("session terminated, do not forget to save your track in Google Earth");
}
$port = trim($_POST['port']);
$baud = trim($_POST['baud']);
$refresh = trim($_POST['refresh']);
$unit = trim($_POST['unit']);
$clear = $_POST['Clear'];
if(!empty($clear)) {
clearTrack();
}
include ("config.php");
global $server, $user, $pass, $db, $refresh,$unit;
read_nmea($port, $baud, $refresh);
?>
aidez moi s'il vous plait
Modifié par gnanzou (02 Feb 2012 - 10:57)