<?php
namespace App\Controller;
use Madi\Geo\Gps;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
class GpsController extends AbstractController
{
/**
* @Route("/gps", name="app_gps")
*/
public function index(Request $request): Response
{
// show_all_errors();
// $request = Request::createFromGlobals();
// Fusion des paramètres _GET (qui deviennent prioritaires) dans _POST
foreach ($request->query->all() as $k => $v) {
$request->request->set($k, $v); // request=POST et query=GET
}
// dump($request->request);
// Extraction des paramètres de filtrage
# ===========
$cc_str = $request->request->get("cc_str", "");
$cc_str = strtoupper($cc_str);
// Extraction du paramètres du paramètre précision pour les coordonnées GPS
# ===========
$cc_prec = $request->request->get("cc_prec", 4);
// $cc_str = strtoupper(@$_REQUEST["cc_str"]);
if (empty($cc_str)) {
// $cc_str = "E02° 33' 11'' / N48° 23' 25''" ; // OK
$cc_str = "GPS 48°35’ 19’’ N 2° 31’ 01’’ E" ; // bug reconversion en DMS
}
// $cc_str = htmlspecialchars($cc_str); // inutile ici
dump($cc_str);
dump($cc_prec);
$msg = "";
// On analyse les coordonnées GPS, qu'elle soient siasies par l'utilisateur
// ou définies par défaut
$gps = null;
try {
$gps = new Gps($cc_str, $cc_prec);
// dump($gps);
} catch (\Throwable $e) {
$msg = "Erreur lors de l'analyse des coordonnées GPS \"cc_str\"";
}
$placeholder = htmlentities($cc_str, ENT_QUOTES);
// $vars = array(
// "msg" => $msg,
// "gps" => $gps,
// "cc_str" => $cc_str, // le chaine d'origine
// "cc_prec" => $cc_prec, // précision coord gps
// "placeholder" => $placeholder,
// );
// $main = sf_twig()->render('main_gps.html.twig', $vars);
// $reply['header_title'] = "main@gps";
// $reply['main'] = $main;
// return $reply;
return $this->render('gps/index.html.twig', [
"title" => "Convertion coordonnées GPS",
"msg" => $msg,
"gps" => $gps,
"cc_str" => $cc_str, // le chaine d'origine
"cc_prec" => $cc_prec, // précision coord gps
"placeholder" => $placeholder,
]);
}
}