raf
Rampant
Hors ligne
Aile: Dune
pratique principale: autre (?)
Messages: 0
|
|
« le: 18 Mai 2010 - 17:41:00 » |
|
salut j organise a l occasion des competes de parapentes online sur le simulateur dans google earth programmé sur paraglidingearth.com (les competes sont là : www.paraglidingearth.com/pgSimCompEvent ) mon probleme : je genere au cours du vol un fichier igc pour garder la trace du vol, stocké en base de données, et j aimerais pouvoir proposer les vols en kml une fois les manches finies. d ou la question : la moulinette existe-t-elle en "webservice" : on soumet un fichier igc stocké en ligne et on recupere un fichier kml stockable en ligne ? merci !!!
|
|
|
|
marc
G33k, option ligne de commande
Rampant
Hors ligne
Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 0
Aime le jus de betterave ! Plouf !
|
|
« Répondre #1 le: 18 Mai 2010 - 18:19:13 » |
|
Tu peux remplir le formulaire simplement avec un lib genre curl. Par ex: #!/bin/bash CURL=curl #OUTPUT=output.kmz PILOT=$USER DATE=`date +%d/%m/%y` TIMESHIFT=`date +%z` #TAKEOFF=undef #LANDING=undef #INPUT=input.igc ANALYSIS=1 CFD=1 # no customization below URL=http://trace.parawing.net/gps2ge.php EXTRA= if [ ! -z $ANALYSIS ]; then EXTRA+=" -F Analysis=checked " fi if [ ! -z $CFD ]; then EXTRA+=" -F cfd=checked " fi $CURL -o $OUTPUT \ -F MAX_FILE_SIZE=1000000 \ -F pilot=$PILOT \ -F date=$DATE \ -F timeshift=$TIMESHIFT \ -F departure="$TAKEOFF" \ -F arrival="$LANDING" \ -F userfile=(@)$INPUT \ $EXTRA \ -F ' '=checked \ $URL
Exemple d'utilisation: $ INPUT=plomb-st-hil.igc OUTPUT=plom-st-hil.kmz TAKEOFF="Saint Hil Nord" LANDING="Lumbin" ~/bzr/misc-tools/gps2ge-cli/gps2ge.sh En utilisant la lib curl depuis ton code php, tu peux obtenir le même résultat. Pas du webservice 2.0, mais c'est pas insurmontable non plus Après, y'a ptet une interface plus sexy, mais je l'ai jamais croisé...
|
|
|
|
raf
Rampant
Hors ligne
Aile: Dune
pratique principale: autre (?)
Messages: 0
|
|
« Répondre #2 le: 18 Mai 2010 - 19:35:43 » |
|
hmm hmm, "remplir avec un lib genre curl" ? j ai peur que ca depasse mes competences moi quand c'est pas dans synaptic.... merci du coup de main, mais là je vois vraiment pas de quoi tu parles, désolé du coup, si y a une interface plus sexy
|
|
|
|
marc
G33k, option ligne de commande
Rampant
Hors ligne
Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 0
Aime le jus de betterave ! Plouf !
|
|
« Répondre #3 le: 18 Mai 2010 - 23:17:15 » |
|
Tu veux quoi exactement ? Un bout de code php qui fait le boulot, ou un script shell ? Ou autre ? Moi je peux t'aider sans soucis si tu me dis quoi faire (et sinon, si je me trompe pas, tu dois être le raf du GUC, parti à l'est ? on c'était rencontré y'a qqs année, à st hil... J'avais une xray violette )
|
|
|
|
raf
Rampant
Hors ligne
Aile: Dune
pratique principale: autre (?)
Messages: 0
|
|
« Répondre #4 le: 19 Mai 2010 - 10:58:06 » |
|
salut marc, merci de proposer ton aide, pour le coup un bout de php me sera effectivement plus utile (les scripts shell, je sais meme pas comment ca se prononce...) et oui, je suis bien du guc et expatrié à beyrouth (depuis maintenant bientot trois ans) : ici ca vole bien, il manque juste une ecole, mais j'y travaille http://www.paraglidinglebanon.com ouverture prevue courant juin
|
|
|
|
raf
Rampant
Hors ligne
Aile: Dune
pratique principale: autre (?)
Messages: 0
|
|
« Répondre #5 le: 24 Mai 2010 - 18:03:14 » |
|
salut j ai cherché trois minutes vingt quatre chez google et j'ai recopié un bout de code php auquel je ne comprends pas grand chose et qui ne donne rien : <?php $postfields = array(); $postfields["MAX_FILE_SIZE"] = "1000000"; $postfields["pilot"] = "Pilot Name"; $postfields["date"] = "12/10/2010"; $postfields["timeshift"] = "+3"; $postfields["departure"] = "takeoff name"; $postfields["arrival"] = "arrival name"; $postfields["userfile"] = "http://www.paraglidingearth.com/pgSimCompEvent/igc/event3/task3/raf.igc"; $postfields["Charts"] = "on"; $postfields["cfd"] = "off"; $postfields["Analysis"] = "off"; $postfields["choix"] = "on";
//url de la page de soumission $url = "http://trace.parawing.net/get_form_gps2ge.php"; $useragent = "Mozilla/5.0"; $referer = $url; //Initialise une session CURL $ch = curl_init($url); //CURL options curl_setopt($ch, CURLOPT_POST, 1); //On poste les données du tableau $postfields curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); //On définit un useragent ici Mozilla/5.0 curl_setopt($ch, CURLOPT_USERAGENT, $useragent); //On passe un referrer ici on passe la même page $url curl_setopt($ch, CURLOPT_REFERER, $referer); //on récupère le contenu de la page de résultat de la soumission dans une chaine curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // en cas de redirection (facultatif ici) //curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); //Page de résultats et fermeture de session $result = curl_exec($ch); curl_close($ch); //on peut faire un echo du résultat obtenu echo $result; ?> la page mouline pendant un bout de temps, puis s arrete en n'affichant rien (j ai pas acces a l error log d'ici) si corriger une erreur dans le script ci dessus peut suffire et permettre de faire gagner du temps...
|
|
|
|
raf
Rampant
Hors ligne
Aile: Dune
pratique principale: autre (?)
Messages: 0
|
|
« Répondre #6 le: 24 Mai 2010 - 18:38:07 » |
|
hmmm, code modifié : <?php $postfields = array(); $postfields["MAX_FILE_SIZE"] = "1000000"; $postfields["pilot"] = "Pilot Name"; $postfields["date"] = "24/05/2010"; $postfields["timeshift"] = "+3"; $postfields["departure"] = "takeoff name"; $postfields["arrival"] = "arrival name"; $postfields["userfile"] = "http://www.paraglidingearth.com/pgSimCompEvent/igc/event3/task3/raf.igc"; $postfields["Charts"] = "on"; $postfields["cfd"] = "off"; $postfields["Analysis"] = "off"; $postfields["choix"] = "on";
//url de la page de soumission //ici mon annuaire (qui a un captcha donc inutile de tenter la soumission auto, c'est pour l'exemple) $url = "http://trace.parawing.net/get_form_gps2ge.php"; $useragent = "Mozilla/5.0"; $referer = $url; //Initialise une session CURL $ch = curl_init($url); //CURL options curl_setopt($ch, CURLOPT_POST, 1); //On poste les données du tableau $postfields curl_setopt($ch, CURLOPT_POSTFIELDS, $postfields); //On définit un useragent ici Mozilla/5.0 curl_setopt($ch, CURLOPT_USERAGENT, $useragent); //On passe un referrer ici on passe la même page $url curl_setopt($ch, CURLOPT_REFERER, $referer); //on récupère le contenu de la page de résultat de la soumission dans une chaine //curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // en cas de redirection (facultatif ici) if (curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1)) echo "good"; //Page de résultats et fermeture de session $result = curl_exec($ch); curl_close($ch); //on peut faire un echo du résultat obtenu //echo $result; ?> resultat visible ici : http://www.paraglidingearth.com/pgSimCompEvent/igc2ge_autom.phpvisiblement y a un petit probleme... :$
|
|
|
|
piwaille
l'(quasi)modo
Administrateur
enrouleur(se) de thermique
Hors ligne
Aile: pure bleu/rouge
pratique principale: cross
vols: bientôt 900 vols
Messages: 158
|
|
« Répondre #7 le: 25 Mai 2010 - 09:53:52 » |
|
désolé si je réponds à coté de la plaque ...mais pourquoi passer par CURL ? pourquoi ne pas faire un (simple) formulaire ... qui ne contient que le bouton ok ... les autres champs peuvent être caché en prod, de toute façon ils seront remplis lors de la génération de ta page. après ça donne simplement : <form method="post" action="http://trace.parawing.net/get_form_gps2ge.php" enctype="multipart/form-data"> <input type="hidden" value="1000000" name="MAX_FILE_SIZE"> <input type="hidden" maxlength="30" size="30" value="Anonymous" name="pilot"> <input type="hidden" maxlength="10" size="10" value="25/05/2010" name="date"> <input type="hidden" maxlength="3" size="3" value="+3" name="timeshift"> <input type="hidden" maxlength="30" size="30" value="takeoff name" name="departure"> ... <input type="submit" value="sors-zy moi le KMZ" name="choix"> </form>
|
|
|
|
marc
G33k, option ligne de commande
Rampant
Hors ligne
Aile: Freestyle2, Aspen2, BiStromboli
pratique principale: vol / site
Messages: 0
Aime le jus de betterave ! Plouf !
|
|
« Répondre #8 le: 25 Mai 2010 - 09:57:14 » |
|
La plus grosse différence est que si tu fais un formulaire comme ça, c'est le client qui parle à parawing, et bon, pas glop de faire un POST vers un domaine différent du site sur lequel tu te balades. D'ailleurs, ça m'étonnerait pas que certains navigateurs coince un peu. Ensuite, si le but c'est de stocker les kmz sur le serveur de pe, en passant par curl, tu t'évites un POST supplémentaire pour envoyer le kmz vers les serveur de paraglidingearth.
(raf, j'ai pas oublié, je tente de faire ce que j'ai dit rapidement)
|
|
|
|
piwaille
l'(quasi)modo
Administrateur
enrouleur(se) de thermique
Hors ligne
Aile: pure bleu/rouge
pratique principale: cross
vols: bientôt 900 vols
Messages: 158
|
|
« Répondre #9 le: 25 Mai 2010 - 11:05:52 » |
|
je suis entièrement d'accord que d'un point de vue sécurité c'est cradissime (j'avais même soulevé le lièvre à man's à l'époque) ... j'ai cru que le but c'était de générer à la demande le kmz ... après effectivement le but peut être de générer le KMZ lors de la soumission de l'IGC et de stocker le KMZ sur son serveur pour avoir une réponse plus rapide (et plus respectueuse des serveurs de parawing)... auquel cas, je botte en touche je suis largement incompétent sur le sujet
|
|
|
|
|