public function OnPointLoopFinished(SvgRenderer $svgRender, Trajet $trajet) { $vbWidth = $this->maxX - $this->minX + $this->margin * 2; $vbHeight = $this->maxZ - $this->minZ + $this->margin * 2; $svgRender->addAttribut(array('width' => $vbWidth)); $svgRender->addAttribut(array('height' => $vbHeight)); $svgRender->addAttribut(array('viewBox' => '' . ($this->minX - $this->margin) . ' ' . ($this->minZ - $this->margin) . ' ' . $vbWidth . ' ' . $vbHeight)); }
/** * Crée un document SVG avec une représentation simple * de l'itinéraire * @param Trajet $trajet * @return mixed */ public static function asSVG(Trajet $trajet) { $svgrendu = new SvgRenderer(); $pathRender = new SvgPathPoint(5, 'red'); $pathRender->getPath()->addAttribut(array('id' => 'route')); $svgSizeRender = new SvgComputeSize(true, 100); $PoiRender = new SvgPoiRenderer(); $svgrendu->attach($pathRender); $svgrendu->attach($svgSizeRender); $svgrendu->attach($PoiRender); return $svgrendu->render($trajet); }
public function onPointLoop(SvgRenderer $svgRender, Trajet $trajet, IPoint $point, $precPoint, $index) { if ($point instanceof PointInteret) { $svgCircle = new SvgNode('circle', true); $svgCircle->addAttribut(array('cx' => $point->getX())); $svgCircle->addAttribut(array('cy' => $point->getZ())); $svgCircle->addAttribut(array('r' => 12)); $svgCircle->addAttribut(array('stroke' => 'orange')); $svgCircle->addAttribut(array('stroke-width' => 2)); $svgCircle->addAttribut(array('fill' => 'limegreen')); $text = new SvgNode('text', false); $text->addAttribut(array('x' => $point->getX() + 15)); $text->addAttribut(array('y' => $point->getZ() + 10)); $text->addAttribut(array('style' => 'fill: orange; stroke: orange; stroke-width: 0px; font-size: 30px; font-weight: bold;')); $text->setTexte($point->getNom()); $svgRender->addNoeud($text, 3); $svgRender->addNoeud($svgCircle, 2); } }
// TODO Revoir la structure de l'index try { // Initialisation de la connexion à la base de données PostGres // renseignée dans le fichier PgrImplementation/config.ini $co = new PgrImplementation\PgDefaultConnexion(); // Création de l'objet gérant l'accès aux tables d'une map $map = new PgrImplementation\PgMapTable("V5", $co, false); if ($_SERVER['REQUEST_METHOD'] === 'POST') { header('Content-Type: image/svg+xml'); header('charset=utf-8'); header('Vary: Accept-Encoding'); if (isset($_POST['depart'])) { $depart = new PgrImplementation\PgEtapeNommee($_POST['depart'], $map); if (isset($_POST['arrivee'])) { $arrivee = new \PgrImplementation\PgEtapeNommee($_POST['arrivee'], $map); $itineraire = new PgrImplementation\PgItineraire($depart, $arrivee, $map); $trajet = $itineraire->calculerItineraire(); echo \Itineraire\Renderer\Svg\SvgRenderer::asSVG($trajet); } } } else { header('Content-Type: text/html'); header('charset=utf-8'); header('Vary: Accept-Encoding'); $gis = new \PgrImplementation\GisManager($map); $destinations = $gis->getAllDestination(); include 'templatePageTest.php'; } } catch (Exception $e) { echo $e->getMessage(); }
public function OnPointLoopFinished(SvgRenderer $svgRender, Trajet $trajet) { $this->path->addAttribut(array("d" => $this->pathLine)); $svgRender->addNoeud($this->getPath()); }