[Mapserver-DE] point-layer mit mysql, php/mapscript und versch. symbolen?

Kai Behncke kbehncke at igf.uni-osnabrueck.de
Fre Dez 1 15:35:26 CET 2006


> Ja, das stimmt. Das ist noch nicht optimal.
> Im Prinzip gibt es die Möglichkeit, die Legende manuell zu erstellen 
> und dann einzubinden, das würde das Problem umgehen. Werd noch mal 
> probieren, ob das mit dem Code nicht vielleicht doch noch eleganter 
> geht
> 
Man kann das auch so lösen, indem man prüft, welcher Legendeneintrag schon
vorhanden ist (und diesen dann ausläßt).
Das geht dann so:


function AddPoints ( $map, $qresult ) {

     $i = 0;
     foreach($qresult as $row) {
        $poi[$i] = ms_newPointObj();
       $ln[$i] =  ms_newLineObj();
       $shp[$i] = ms_newShapeObj(MS_SHAPE_POINT);
        $poi[$i]->setXY($row[2],$row[3]);
    $ln[$i]->add($poi[$i]);
	
     $shp[$i]->add($ln[$i]);
        $shp[$i]->set(index, $row[0]);
        
        $array_kategorieeintraege[]=$row[4];
 
     if ($row[4]=="$array_kategorieeintraege[$i]") {
          $that_layer[i]=ms_newLayerObj($map);
          $that_layer[i]->set('status',MS_ON);
          $that_layer[i]->set ("name",$array_kategorieeintraege[$i]);
          $that_layer[i]->set ("type",point);
          $newclass=ms_newClassObj($that_layer[i]);
       
       for ($y=0;$y<sizeof($array_kategorieeintraege);$y++) {  

       if ($array_kategorieeintraege[$i]==$array_kategorieeintraege[$y-1]) {
         $bereits_vorhanden=1;
		  }
		  
		  }
		  
		  
 		if ($bereits_vorhanden==0) {
       $newclass->set ("name",$array_kategorieeintraege[$i]); }
     
      $bereits_vorhanden=0;
       
       
$newstyle=ms_newStyleObj($newclass);
$newstyle->set("symbolname", $array_kategorieeintraege[$i]);
$newstyle->set("size", "15");
$newstyle->color->setRGB(0, 0, 255);

$that_layer[i]->addFeature( $shp[$i] );
}
 
        $i++;
     }

     return;

}  

Beste Grüße, Kai
 
--
Dipl.-Geogr. Dipl.-Umweltw. Kai Behncke

Institut für Geoinformatik und Fernerkundung (IGF)
Universität Osnabrück
Kolpingstr. 7
49074 Osnabrück

Raum: 01/308
Tel.: +49 541 969-4450
E-Mail: mailto:kbehncke at igf.uni-osnabrueck.de 
Web:  http://www.igf.uni-osnabrueck.de




This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)