Programmation PHP

Fermé
sudmeteo - 7 mars 2010 à 10:19
 sudmeteo - 28 avril 2010 à 18:14
Bonjour,

Je suis de train de creer un site web, www.sudmeteo.com et je rencontres un probleme.

Je voudrais faire une carte avec les cellule orageuse:
Il faut que j'ouvre un fichier de ce type:

2010-03-07 09:00:00 UTC
Cellule orageuse - Latitude : 48.9795081976 - Longitude : 2.7568681125
Cellule orageuse - Latitude : 48.9644808752 - Longitude : 2.7568681125
Cellule orageuse - Latitude : 48.9494535528 - Longitude : 2.7568681125
Cellule orageuse - Latitude : 48.9344262304 - Longitude : 2.7568681125
Cellule orageuse - Latitude : 48.919398908 - Longitude : 2.7568681125
Cellule orageuse - Latitude : 48.9043715856 - Longitude : 2.7568681125
Cellule orageuse - Latitude : 48.99453552 - Longitude : 2.7802197608
Cellule orageuse - Latitude : 48.9644808752 - Longitude : 2.7802197608


Et après il faut que ces données je les mettent sous forme d'image, un point rouge par exemple pour une cellule.

Et à la fin il faut que j'obtienne la carte de France avec les points rouge correspondants aux cellules.

Donc voici mon problème:

Comment mettre ceci sous forme d'image?

J'ai déjà une idée pour lire mon message avec un fopen et un explode ca devrait le faire mais je ne vois vraiment pas comment je pourrai mettre ca sous forme d'image!!
A voir également:

9 réponses

jorge_gomes Messages postés 71 Date d'inscription vendredi 5 février 2010 Statut Contributeur Dernière intervention 28 novembre 2012 5
21 mars 2010 à 21:22
Bonsoir;

Je te conseillerai vivement le suivant:

En partant du principe que tous les fichiers suivent toujours la même structure, il faut faire un explode sur le tiret sur chaque ligne:
$tableau_1 = explode('-', $fichier);

Alors tu auras un tableau du type, le premier élément comme exemple:
$tableau_1[0] = array('Cellule orageuse', 'Latitude : 48.9795081976', 'Longitude : 2.7568681125')

Ensuite créer un variable de stockage pour les diverses informations:
$infos = array();

Maintenant nous récupérons la latitude et la longitude en explosant sur le tiret, remarque bien que nous ignorons le premier élément[0]:
$latd = explode(':', $tableau_1[1]);
$long = explode(':', $tableau_1[2]);

Alors gardons l'information dans notre variable créer:
array_push($infos, array($latd[1], $long[1]));

Ainsi $infos sera une variable avece cet aspect à la fin:
înfos = array(
[0] =>(48.9795081976, 2.7568681125),
[1] =>(48.9644808752, 2.7568681125),
[2] =>(48.9644895674, 2.7568681125)
)

Et voilà, on a les données bien stockées. pour pointer ces éléments dans une carte je te conseillerai vivement et longuement google maps pour ça. Ça sera bien indiqué, facille rapide et demandera moins de puissance de la machine.

Voilà, et bonne chance.
1
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
7 mars 2010 à 10:26
Bonjour,

As-tu regardé du côté de la LIB GD pour générer des images en php?

Voici un petit tutoriel :
http://www.lephpfacile.com/cours/22-la-librairie-gd

Bon courage.
0
Sud Météo
21 mars 2010 à 20:32
slt merci oui j'ai regardé mais mon problème est en faite de définir a point (0;0) de l'image la latitude et la longitude.

Et tant que j'y suis quelqu'un sait-il comment je puis inserer le contenu d'un fichier txt dans une image.

Par exemple j'ai un fichier dans lequel il y a marqué 15°C. Comment faire pour écrire 15°C dans l'image. ( le contenu de txt varie).

Lien : http://www.sudmeteo.com/obstemperature.php (ou sera l'image)*
lien 2:http://www.sudmeteo.com/test.php (mon fichier "txt").

J'ai testé ca mais ca marche pas:

<?php
header ("Content-type: image/png");
 
$image = imagecreatefrompng("temp.png");

$blanc = imagecolorallocate($image, 255, 255, 255);

$date = 'Le ' . date('d/m/Y');
$heure = 'Genere a ' . date('H\h i');


imagestring($image, 5, 10, 25, $date, $blanc);
imagestring($image, 5, 10, 40, $heure, $blanc);
imagestring($image, 5, 400, 400,"$order", $blanc);

imagepng($image);
?>

<?php
$fp = fopen("http://www.sudmeteo.com/metar/temp1.php", 'r');

if (!$fp)
{
echo'N/A';
exit;
}

while(!feof($fp))
{
$order= fgets($fp, 999);
echo $order.'';
}

fclose($fp);
?>


Merci d'avance
0
Sud Météo
22 mars 2010 à 18:49
Bonsoir merci beaucoup pour cette réponse. Je me met tout de suite au travail.

Par contre si quelqu'un peut vm'aider pour ma deuxième question.. Merci

a+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonsoir
Petit up !!! S-il vous plait je cherche mais je n'avance pas :'(

Mon problème est toujours le même

Afficher le contenu de ce fichier: http://www.sudmeteo.com/test.php
sur cette image:http://www.sudmeteo.com/imagetemp.php

Merci d'avance
0
2 mois plus tard
0
scriptiz Messages postés 1424 Date d'inscription dimanche 21 décembre 2008 Statut Membre Dernière intervention 14 septembre 2023 425
Modifié par scriptiz le 28/04/2010 à 13:29
Bonjour bonjour :)

Je vais un peu me répéter, mais chez moi ça fonctionne très bien, vérifie que tu as tout bien fait.

"Pour écrire du texte sur une image commence par lire cet article :
http://www.lephpfacile.com/cours/22-la-librairie-gd

Si tu le lis de façon approfondie tu saura désormais utilisé les bases de la librairie GD, et notamment à l'exemple 13 tu verra comment écrire du texte sur une image. "
Pour récupérer le texte de ton fichier texte, si tu n'a que le truc que tu dois afficher dans le fichier, tu peux très bien utiliser la fonction file_get_contents() que voici : https://www.php.net/manual/fr/function.file-get-contents.php

Sur ce bonne chance, tu as toutes les clés en main pour réussir si tu y met un peu du tiens maintenant =)
"The most successful method of programming is to begin a program as simply as possible, test it, and then add to the program until it performs the required job." -- PDP8 handbook, Pg 9-64
0
Paul Maurice
28 avril 2010 à 14:31
t'as essayé avec les outils SIG comme MAPinfo? il peut être utile pour la representation graphique
cherche un peu dans ce sens
Paul Maurice
0
Bonjour!

La fonction file_get_contents() affiche dans une image le code html en entier de mon fichier test.php et donc:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
<head>
</head>
<body style="font-size:12px;">
&nbsp; 20°C<BR>
   </body>
</html>


En effet scriptiz, tu ne pouvais pas savoir que mon fichier test.php contenait:
<?php
$fp = fopen("http://www.sudmeteo.com/metar/temp1.php", 'r');

if (!$fp)
{
echo'N/A';
exit;
}

while(!feof($fp))
{
$ajaccio= fgets($fp, 999);
echo $ajaccio.'';
}

fclose($fp);
?>


Mais je pense avoir une idée qui me permettra d'utiliser ton astuce:

J'enregistre "20°C" (ici) dans un fichier txt et c'est gagné. Reste à chercher comment faire . =)

Merci.
0
Donc après réflexion:

Je crée un fichier qui se nommera test.txt

un fichier qui sera actualiser régulièrement contiendra ceci:


$sortieajaccio =  $tempC."\t"."C";

@ $fp = fopen("http://wwww.sudmeteo.com/test.txt",'ab');
fwrite($fp, $sortieajaccio, strlen($sortieajjacio));
fclose($fp);



$tempC est la température.


Or vous devinez que la, les données vont s'accumuler.

Et la est mon probleme j'aimerai savoir comment on fait pour supprimer d'abord toutes les données du fichier avant d'en écrire des nouvelles!

J'ai vu l'existence de la fonction preg_replace mais je ne comprend pas sa syntaxe, comment elle marche quoi!

Voila. Merci d'avance
0
je met w+ à la place de ab. Ca doit marcher je crois
0