20 Mai 2013 à 20:10:46
Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ? 
Nouvelles:

frenchiPhone   le forum



Auteur Sujet: MAJ plugin point d'interet/tomtom GPS près votre position avec les pages jaunes  (Lu 513 fois)

0 Membres et 1 Invité sur ce sujet

keaoner

  • Membre Junior
  • **
  • Messages: 61
    • Voir le profil
Bonjour,

Vous avez besoin  de recherche le centre dentaire le plus proche de vous dite : centre dentaire autour de moi

ce plugin vous positionne géographiquement et par une extraction sur les pages jaunes vous indique le POI rechercher le plus proche de vous puis il ouvre TomTom pour vous indiquer le trajet.

ce plugin peut être améliorer  j'espère être aider pas des menbres de frenchiphone
 

Pre-requis installation:

1/ Ajouter la ligne suivante dans "/private/etc/lighttpd2.conf: accesslog.filename = "/var/mobile/logs/lighthttpd_access.log"
2/ Ajouter le répertoire geo (fourni avec le plugin) et son contenu dans /private/var/www/  ci-dessous le lien:
http://skarla2.free.fr/geo.rar

Précision:

Ce plugin calcul votre position en local sur votre Iphone (comme cela c'est un peu plus sécurisé)

Axe d'améliation

Trouvez une solution pour ne pas répeter deux fois l'ordre 1 fois au niveau du plugin et 1 seconde fois au niveau du context (lors du passage sur le context je n'ai pas trouvez comment passer une variable du plugin vers le context)
Affiner la recherche par exemple une recherche de "dentiste" sur les pages Jaunes demande une précision  (tester vous verez) il faut dire "centre dentaire" au lieu de "dentiste"

voilà, merci de me faire des retours en commentant ce topic


Le plugin:

Dire : centre dentaire autour de moi

<?
if(
($request->match("* autour de moi"))||($request->match("p o i * autour de moi"))
  ) {
  
// Pre-requis installation:
// Ajouter la ligne suivante dans "/private/etc/lighttpd2.conf": accesslog.filename = "/var/mobile/logs/lighthttpd_access.log"
// Ajouter le repertoire geo (fourni avec le plugin) et son contenu dans /private/var/www/
  
 
//vide le logs des informations de geolocalisation n-1 lighthttpd_access.log  
file_put_contents('/private/var/mobile/logs/lighthttpd_access.log', '');
flush();

//écriture des coordonnées actuelles dans le logs lighthttpd_access.log
$response->call("DISPLAY_WEBPAGE","http://127.0.0.1/geo/geo.html");
flush();

$poi = ($request->data[0]);
$response->enterContext
("gps");
  ok();
}


Le context du plugin à nommer "gps"

Redire : centre dentaire autour de moi


<?

if(
($request->match("* autour de moi"))||($request->match("p o i * autour de moi"))
  ) {

//extraction des coordonnés du log lighthttpd_access.log dans les variables $mylat[1] et $mylon[1]
$include = implode("", file("/private/var/mobile/logs/lighthttpd_access.log"));
flush();

if(eregi('geolat=(.*)\&geolon=',$include,$mylat))
flush();

if(eregi('geolon=(.*)%3C/iframe',$include,$mylong))
flush();


//$response->say("ma latitude est: ".$mylat[1]);
flush();
//$response->say("ma longitude est: ".$mylong[1]);
flush();

//modification de la date du log lighthttpd_access.log (important pour l'extraction des coordonnés)
touch("/private/var/mobile/logs/lighthttpd_access.log");

//retrouver adresse postale à partir de lat et long
$data = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=".$mylat[1].",".$mylong[1]."&sensor=false");
$data = json_decode($data);
$data = $data->results[0];
$myadd = $data->formatted_address;
$conversion3 = array(","=>"");
$myadd = strtr($myadd,$conversion3);
$response->say("Recherche en cours pour: ".$request->data[0]." proche de votre localisation: ".$myadd);

$conversion = array(" "=>"%20");
$request->data[0] = strtr($request->data[0],$conversion);


$include = implode("", file("http://iphone.pagesjaunes.fr/search/process?cId=1&accuracy=25000&aroundMeSearch=true&cityLocality=&code_activite_pour_levee_ambiguite=&countryCodeLocality=&isProximity=&isResidential=false&latitude=".$mylat[1]."&longitude=".$mylong[1]."&nationalSearch=&postalCodeLocality=&resultListModifyFormActivityCode=&resultListModifyFormActivityLabel=&search.whatWho=".$request->data[0]."&search.where=Ex%20%3A%20ville%2C%20CP%2C%20adresse%2C%20r%C3%A9gion...&selectedCarouselActivityId=&streetLocality=&webFormVisitorOrigin=true"));



if(eregi('<span style="color:#000000;">(.*)<br />',$include,$title))

$texte = ($title[1]);
$marqueurDebutLien = '&\gt ';
$debutLien = strpos( $texte, $marqueurDebutLien ) + strlen( $marqueurDebutLien );
$marqueurFinLien = '<br />';
$finLien = strpos( $texte, $marqueurFinLien );
$address = substr( $texte, $debutLien, $finLien - $debutLien );
//nettoyer balise html
//$title[1] = ereg_replace("<[^>]*>", "", $title[1]);

$name = ($request->data[0]);
$conversion2 = array("%20"=>" ");
$name = strtr($name,$conversion2);
//$response->say($name." ".$address);

$response->say("Le P O I rechercher : ".$request->data[0]." le plus proche de vous se trouve au: ".$address);

$data = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?address=".str_replace(" ","%20",$address)."%20france&sensor=false");

$data = json_decode($data);
$data = $data->results[0];

$lat = $data->geometry->location->lat;
$lng = $data->geometry->location->lng;

$response->call("OPEN_URL","tomtomhome://geo:action=navigateto&lat=".$lat."&long=".$lng."&name=".$name." ".$address." ");
 
$response->exitContext();
ok();
}
else{
$response->say("Demande annuler");  
 
$response->exitContext();
ok();
}

Merci à John et Dumbaconf pour la partie lancement du gps
« Modifié: 01 Avril 2012 à 19:46:55 par keaoner »

keaoner

  • Membre Junior
  • **
  • Messages: 61
    • Voir le profil
Une petite MAJ sympas:



Bonjour,

Vous avez besoin  de recherche le centre dentaire le plus proche de vous dite : centre dentaire autour de moi

ce plugin vous positionne géographiquement et par une extraction sur les pages jaunes vous indique le POI rechercher le plus proche de vous puis il ouvre TomTom pour vous indiquer le trajet.

ce plugin peut être améliorer  j'espère être aider pas des menbres de frenchiphone
 

Pre-requis installation:

1/ Ajouter la ligne suivante dans "/private/etc/lighttpd2.conf: accesslog.filename = "/var/mobile/logs/lighthttpd_access.log"
2/ Ajouter le répertoire geo (fourni avec le plugin) et son contenu dans /private/var/www/  ci-dessous le lien:
http://skarla2.free.fr/geo.rar

Précision:

Ce plugin calcul votre position en local sur votre Iphone (comme cela c'est un peu plus sécurisé)

Axe d'améliation

Trouvez une solution pour ne pas répeter deux fois l'ordre 1 fois au niveau du plugin et 1 seconde fois au niveau du context (lors du passage sur le context je n'ai pas trouvez comment passer une variable du plugin vers le context)
Affiner la recherche par exemple une recherche de "dentiste" sur les pages Jaunes demande une précision  (tester vous verez) il faut dire "centre dentaire" au lieu de "dentiste"

voilà, merci de me faire des retours en commentant ce topic


Le plugin:

Dire : centre dentaire autour de moi


<?

if(($request->match("* proche de moi"))||($request->match("p o i * proche de moi"))) {
$response->say("repeter le nom du P O I? ");
// Pre-requis installation:
// Ajouter la ligne suivante dans "/private/etc/lighttpd2.conf": accesslog.filename = "/var/mobile/logs/lighthttpd_access.log"
// Ajouter le repertoire geo (fourni avec le plugin) et son contenu dans /private/var/www/
  
 
//vide le logs des informations de geolocalisation n-1 lighthttpd_access.log  
file_put_contents('/private/var/mobile/logs/lighthttpd_access.log', '');
flush();

//écriture des coordonnées actuelles dans le logs lighthttpd_access.log
$response->call("DISPLAY_WEBPAGE","http://127.0.0.1/geo/geo.html");
flush();

$response->enterContext("gps");
  ok();
}




Le contexte  "gps"


<?

if($request->match("*")) {

//extraction des coordonnés du log lighthttpd_access.log dans les variables $mylat[1] et $mylon[1]
$include = implode("", file("/private/var/mobile/logs/lighthttpd_access.log"));
flush();

if(eregi('geolat=(.*)\&geolon=',$include,$mylat))
flush();

if(eregi('geolon=(.*)%3C/iframe',$include,$mylong))
flush();


//$response->say("ma latitude est: ".$mylat[1]);
flush();
//$response->say("ma longitude est: ".$mylong[1]);
flush();

//modification de la date du log lighthttpd_access.log (important pour l'extraction des coordonnés)
touch("/private/var/mobile/logs/lighthttpd_access.log");

//retrouver adresse postale à partir de lat et long
$data = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=".$mylat[1].",".$mylong[1]."&sensor=false");
$data = json_decode($data);
$data = $data->results[0];
$myadd = $data->formatted_address;

//transformation des espaces dans les noms
$conversion3 = array(","=>"");
$myadd = strtr($myadd,$conversion3);
$name = ($request->data[0]);
$conversion2 = array("%20"=>" ");
$name = strtr($name,$conversion2);
//$response->say($name." ".$address);

//$response->say("Recherche en cours pour: ".$name." proche de votre localisation: ".$myadd);

$conversion = array(" "=>"%20");
$request->data[0] = strtr($request->data[0],$conversion);


$include = implode("", file("http://iphone.pagesjaunes.fr/search/process?cId=1&accuracy=25000&aroundMeSearch=true&cityLocality=&code_activite_pour_levee_ambiguite=&countryCodeLocality=&isProximity=&isResidential=false&latitude=".$mylat[1]."&longitude=".$mylong[1]."&nationalSearch=&postalCodeLocality=&resultListModifyFormActivityCode=&resultListModifyFormActivityLabel=&search.whatWho=".$request->data[0]."&search.where=Ex%20%3A%20ville%2C%20CP%2C%20adresse%2C%20r%C3%A9gion...&selectedCarouselActivityId=&streetLocality=&webFormVisitorOrigin=true"));



if(eregi('<span style="color:#000000;">(.*)<br />',$include,$title))

$texte = ($title[1]);
$marqueurDebutLien = '&\gt ';
$debutLien = strpos( $texte, $marqueurDebutLien ) + strlen( $marqueurDebutLien );
$marqueurFinLien = '<br />';
$finLien = strpos( $texte, $marqueurFinLien );
$address = substr( $texte, $debutLien, $finLien - $debutLien );
//nettoyer balise html
//$title[1] = ereg_replace("<[^>]*>", "", $title[1]);


if($address != ""){
$response->say("Le P O I rechercher : ".$name." le plus proche de vous se trouve au: ".$address);

$data = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?address=".str_replace(" ","%20",$address)."%20france&sensor=false");

$data = json_decode($data);
$data = $data->results[0];

$lat = $data->geometry->location->lat;
$lng = $data->geometry->location->lng;

$response->call("OPEN_URL","tomtomhome://geo:action=navigateto&lat=".$lat."&long=".$lng."&name=".$name." ".$address." ");
}
else{
 
$response->say("Adresse du P O I: ".$name." non trouver,veuillez refaire la demande en donnant plus de precision. Merci de voir la liste suivante des page jaunes");

$response->call("DISPLAY_BIG_WEBPAGE","Pages Jaunes","http://iphone.pagesjaunes.fr/search/process?cId=1&accuracy=25000&aroundMeSearch=true&cityLocality=&code_activite_pour_levee_ambiguite=&countryCodeLocality=&isProximity=&isResidential=false&latitude=".$mylat[1]."&longitude=".$mylong[1]."&nationalSearch=&postalCodeLocality=&resultListModifyFormActivityCode=&resultListModifyFormActivityLabel=&search.whatWho=".$request->data[0]."&search.where=Ex%20%3A%20ville%2C%20CP%2C%20adresse%2C%20r%C3%A9gion...&selectedCarouselActivityId=&streetLocality=&webFormVisitorOrigin=true");  
$response->exitContext();
ok();  
}
$response->exitContext();
ok();
}

« Modifié: 02 Avril 2012 à 16:52:38 par keaoner »

kalou60

  • Membre Héroïque
  • *****
  • Messages: 4955
  • Sexe: Homme
    • Voir le profil
merci et bravo pour ce que tu fais  8)
iPhone 4s
iPad fw:5.0
iMac 27" dualboot
New iPad

frenchiPhone le forum


keaoner

  • Membre Junior
  • **
  • Messages: 61
    • Voir le profil
merci et bravo pour ce que tu fais  8)

 ;D un petit merci cela fait toujours plaisir, amusez vous bein avec ce plugin
« Modifié: 02 Avril 2012 à 16:55:12 par keaoner »

frenchiPhone le forum


 

Carbonate design by Bloc
variant: carbon
SMF 2.0.2 | SMF © 2011, Simple Machines
SMFAds for Free Forums
Page générée en 0.609 secondes avec 30 requêtes.