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.rarPrécision:Ce plugin calcul votre position en local sur votre Iphone (comme cela c'est un peu plus sécurisé)
Axe d'améliationTrouvez 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();
}