#1 Thu 27 May 2010 11:01
- valentin37
- Participant occasionnel
- Date d'inscription: 20 Apr 2009
- Messages: 29
Affichage d'une carte de référence en MapScript
bonjour,
je suis totalement nouveau dans le monde du MapScript et j'ai un petit problème pour afficher une carte de situation. J'ai déja crée la carte principale que j'affiche ensuite comme tel :
Code:
<img src=". $this->carto() ." alt='projets' title='projets' style='border:solid 3px '#CCCCCC'>
Maintenant j'aimerai afficher la carte de situation. J'ai trouvé "drawReferenceMap()" ue j'ai tenté d'afficher en bas....
mais maintenant que faire? Merci d'avance de vos réponses
Code:
private function carto(){ //$this->idx //identifiant du polygone... $mapWidth = 400; $mapHeight = 250; // Création d'un mapFile à partir d'un vrai mapfile $map = ms_newMapObj("/opt/mapfiles/visiaurif_transport/carte_000000579.map"); // Modifier la taille $map->setSize($mapWidth, $mapHeight); //$map->scalebar->set("status",MS_OFF); $sql = "select (xmin(the_geom)-500) as x_min, (ymin(the_geom)-500) as y_min,(xmax(the_geom)+500) as x_max,(ymax(the_geom)+500) as y_max from ". self::TABLE." where gid=" . $this->idx; $res = pg_query($this->db,$sql); $row = pg_fetch_object($res); $map->setextent($row->x_min,$row->y_min,$row->x_max,$row->y_max); $img = $map->draw(); $url = $img->saveWebImage(); $ref = $map->drawReferenceMap(); $legende_url = $ref->saveWebImage(); return $url; return $legende_url; }
Hors ligne
#2 Thu 27 May 2010 11:27
Re: Affichage d'une carte de référence en MapScript
Bonjour,
Code:
private function carto(){ //$this->idx //identifiant du polygone... $mapWidth = 400; $mapHeight = 250; // Création d'un mapFile à partir d'un vrai mapfile $map = ms_newMapObj("/opt/mapfiles/visiaurif_transport/carte_000000579.map"); // Modifier la taille $map->setSize($mapWidth, $mapHeight); //$map->scalebar->set("status",MS_OFF); $sql = "select (xmin(the_geom)-500) as x_min, (ymin(the_geom)-500) as y_min,(xmax(the_geom)+500) as x_max,(ymax(the_geom)+500) as y_max from ". self::TABLE." where gid=" . $this->idx; $res = pg_query($this->db,$sql); $row = pg_fetch_object($res); $map->setextent($row->x_min,$row->y_min,$row->x_max,$row->y_max); $img = $map->draw(); $this->url = $img->saveWebImage(); $this->ref = $map->drawReferenceMap(); $legende_url = $ref->saveWebImage(); return $this; }
plus loin :
Code:
$map = $this->carto();
$map->url est l'url de la carte, $map->ref est celle de la carte de réference. Je ne suis pas sur que cela fonctionne. Je pense qu'il vaut mieux écrire un code complètement orienté objet avec un constructeur $map = new Carto() puis $map->getMapUrl() et $map->getMapRef() deux méthodes de la classe Carto() pour récupérer la carte principale et la carte de référence.
Sinon tu peux toujours faire un return array('url'=>$url, 'ref'=>$ref) qui sera utilisable par $map['url'] et $map['ref'].
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#3 Thu 27 May 2010 14:45
- valentin37
- Participant occasionnel
- Date d'inscription: 20 Apr 2009
- Messages: 29
Re: Affichage d'une carte de référence en MapScript
Merci de ta réponse...
mais honnêtement je suis totalement largué....
Hors ligne
#4 Thu 27 May 2010 15:25
Re: Affichage d'une carte de référence en MapScript
Bonjour,
Alors test cela :
Code:
private function carto(){ //$this->idx //identifiant du polygone... $mapWidth = 400; $mapHeight = 250; // Création d'un mapFile à partir d'un vrai mapfile $map = ms_newMapObj("/opt/mapfiles/visiaurif_transport/carte_000000579.map"); // Modifier la taille $map->setSize($mapWidth, $mapHeight); //$map->scalebar->set("status",MS_OFF); $sql = "select (xmin(the_geom)-500) as x_min, (ymin(the_geom)-500) as y_min,(xmax(the_geom)+500) as x_max,(ymax(the_geom)+500) as y_max from ". self::TABLE." where gid=" . $this->idx; $res = pg_query($this->db,$sql); $row = pg_fetch_object($res); $map->setextent($row->x_min,$row->y_min,$row->x_max,$row->y_max); $img = $map->draw(); $url = $img->saveWebImage(); $ref = $map->drawReferenceMap(); $legende_url = $ref->saveWebImage(); return array('url'=>$url, 'ref'=>$ref); }
Dans ton code pour appeler la carte :
Code:
<?php $map = $this->carto(); echo "<img src=".$map['url']." alt='projets' title='projets' style='border:solid 3px '#CCCCCC'>"; echo "<img src=".$map['ref']." alt='projets' title='reference map' style='border:solid 3px '#CCCCCC'>"; ?>
C'est du code php simple
Y.
Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !! - GeoRezo vous aide ? Aidez GeoRezo !
Hors ligne
#5 Thu 27 May 2010 15:37
- valentin37
- Participant occasionnel
- Date d'inscription: 20 Apr 2009
- Messages: 29
Re: Affichage d'une carte de référence en MapScript
Merci beaucoup cela fonctionne juste en modifiant
Code:
return array('url'=>$url, 'ref'=>$ref);
par
Code:
return array('url'=>$url, 'ref'=>$legende_url);
merci beaucoup en tout cas..... et si tu pouvais me donner des cours....
Dernière modification par valentin37 (Thu 27 May 2010 15:37)
Hors ligne