Attualmente la nostra mappa viene visualizzata con le dimensioni 500×300 (in pixel) che sono impostate nella funzione renderHTML della nostra classe.
Rendiamo ora parametriche queste dimensioni, in modo da poterle impostare attraverso una funzione della nostra classe setDimensions(x, y) a cui passeremo appunto le dimensioni desiderate.
Iniziamo con dichiarare due nuove variabili membro per la nostra classe che serviranno a memorizzare i valori delle dimensioni della mappa. Ho aggiunto per chiarezza dei commenti visto che la nostra classe sta iniziando a espandersi:
class PhpGoogleMap {
// variabili membro della classe
private $apikey;
private $dimX;
private $dimY;
...
Nel costruttore definiamo delle dimensioni di default nel caso in cui l’utilizzatore della classe non imposti esplicitamente le dimensioni della mappa. Direi che il 500×300 proposto da Google potrebbe essere una buona scelta:
function __construct($_apikey){
$this->apikey = $_apikey;
$this->dimX = 500;
$this->dimY = 300;
}
A questo punto modifichiamo la funzione renderHTML in modo che includa le variabili della classe invece delle costanti precedenti:
function renderHTML(){
echo "<div id=\"map_canvas\" style=\"width: ".$this->dimX."px; height: ".$this->dimY."px\"></div>";
}
Visualizziamo la pagina. La mappa ha le stesse dimensioni di prima, ma ora possiamo averne il controllo. Ci basta scrivere il metodo setDimensions che imposta le variabili dimX e dimY nella classe:
function setDimensions($x, $y){
$this->dimX = $x;
$this->dimY = $y;
}
Ora possiamo richiamare dal codice PHP della pagina base.php il metodo setDimensions con le dimensioni desiderate da noi:
<?php
include("PhpGoogleMap.php");
$map = new PhpGoogleMap("ABQIAAAAaCXVeDXfpm7YlAwseZnnIRT2yXp_ZAY8_ufC3CFXhHIE1NvwkxRftdtfVBwCVswj14F5-5imlhaaQg");
$map->setDimensions(800, 600);
?>
Nel prossimo post parametrizzeremo le coordinate geografiche. Avanti!

