Post

Le dimensioni della mappa

In Diario, Personalizzazione on 20/12/2009 by paooolino

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!

Lascia un Commento

Fill in your details below or click an icon to log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Log Out / Modifica )

Foto Twitter

You are commenting using your Twitter account. Log Out / Modifica )

Foto di Facebook

You are commenting using your Facebook account. Log Out / Modifica )

Connecting to %s

Follow

Get every new post delivered to your Inbox.