AW: [UMN_MAPSERVER-USERS] Dynamic points and labels

Frank Broniewski Frank.Broniewski at MNHA.ETAT.LU
Tue Nov 22 03:18:51 EST 2005


Hello

I think you need to draw the label cache before drawing your map image.
I append my code, so you can see, what I do:

            foreach($this->session->get('points') as $points) {
        		$myXY = ms_newPointObj();
        		$myXY->setXY($points['x'], $points['y']);
        		$dummylayer =
$this->map->getLayerByName('DummyPoint');
        		$success = $myXY->draw($this->map, $dummylayer,
$mapimage, $points['class'], $points['label']);
            }
            $this->map->drawLabelCache($mapimage);

                                                      
Frank Broniewski
Musée National d'Histoire et d'Art
Section Préhistoire / Projet EPC
    Tél: +352 260 281-21
241, Rue de Luxembourg
L-8077 Bertrange


-----Ursprüngliche Nachricht-----
Von: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU] Im
Auftrag von dldeskins at GMAIL.COM
Gesendet: Montag, 21. November 2005 22:08
An: MAPSERVER-USERS at LISTS.UMN.EDU
Betreff: [UMN_MAPSERVER-USERS] Dynamic points and labels


I have written a function that is used place points dynamically on a map
from session variables:  function addPoints(&$map,&$image,$xCoor,$yCoor,
$symbol, $text)  {
  $my_layer = ms_newLayerObj($map);
  $my_layer->set("name", "myLayer");
  $my_layer->set("type", MS_LAYER_POINT);
  $my_layer->set("status", MS_ON);

  $my_layer->set(transparency, 75);
  $pt = ms_newPointObj();
  $ln = ms_newLineObj();
  $shp = ms_newShapeObj(MS_SHAPE_POINT);
  // these are pixel coordinates because TRANSFORM is FALSE

  $pt->setXY($xCoor, $yCoor);
  $ln->add($pt);
  $shp->add($ln);

  $my_class = ms_newClassObj($my_layer);
  $my_class->label->set("font", "arial-bold");
  $my_class->label->set("type", MS_TRUETYPE);
  $my_class->label->set("size", 7);
  $my_class->label->color->setRGB(255, 0 , 0);
  $my_class->label->backgroundcolor->setRGB(255, 255 , 255);
  $my_class->label->set("position", MS_LC);
  $my_class->label->set("force", MS_TRUE);

  $my_class->label->set("partials", MS_TRUE);
  $my_class->label->set("buffer", 0);
  $shp->set("text", stripslashes($text));

  $my_style = ms_newStyleObj($my_class);

  if($symbol == "g")
  {
   $my_style->set("symbolname","star_green");
  }
  elseif($symbol == "b")
  {
   $my_style->set("symbolname","star_blue");
  }

  $my_layer->addFeature($shp);
  $my_layer->draw($image);

 }

The symbols are showing in the proper place. The problem that I am
having is that the label will not show. Can anyone see a problem with
the function?  I would eventually like to set the font, color, size
dynamically also.

Thanks



More information about the mapserver-users mailing list