Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

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 wink

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

 

Pied de page des forums

Powered by FluxBB