[Mapserver-users] Label/Classes Items

Fernando S. simon at inf.univali.br
Tue May 4 10:59:00 EDT 2004


This is a multi-part message in MIME format.
--------------050707070105030603090803
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit

Hi,  
    I am with some problems with label items. I have one layer with two 
classes and I don't have data because I NEED to use FEATURE.
    Well, I'm using mapscript to set and add the feature, this items are 
draw correctly, they appear in the map. They are drawed using first 
class definitions.
    Now I need to set correctly the class using mapscript. I tried to 
set the classindex in "ms_newShapeObj", the same that I use in 
"addFeature". I set this value before I execute "addFeature". But the 
data always drawed by first class. When I execute an echo before set the 
classindex was show 0 and after I changed, was show the value that I 
set, but always the feature it's drawed by first class. I changed the 
values to many options (1, 2, 3....) but without effect.
    I can't to define one EXPRESSION in class because I don't have 
anything to define. The feature (shapeObj) only support to change two 
attributes "text" and "classindex". Text to label and index to class, 
correct?

    I used this layer:

layer
    name 'test'
    type point
    status off
    labelcache on
    class
        symbol 'coleta'
        color 255 0 0
        outlinecolor 255 255 255
        size 10
        label
            antialias on            
            color 255 255 255
            outlinecolor 0 0 0
            buffer 2
            font verdana
            type truetype
            force false
            size 8
            position ll
        end            
    end
    class      
        color 0 0 0
        outlinecolor 255 255 255
        symbol 'sede'
        size 10
        label
            antialias on
            color 125 255 155
            outlinecolor 125 0 123
            buffer 2
            font verdana
            type truetype
            force true
            size 8
            position cc
        end            
    end
end  

    I changed many values in this layer, labelcache, force, 
position...... but always the same efect. First class.

    And I use this mapscript code:

        if ($layer_name == 'test')
        {           
            ociConectar();  //Connect to database
            ociExecutar( $pesq_faz_suinos);  //Execute the query
            $p = ms_newpointObj();
            while (list($cd_fornecedor, $x, $y ) = ociTupla())
            {     
                    $p->setXY($x, $y);                   
                    if ($circle->contains($p))
                    {
                          isset($ShapePonto);
                          isset($Ponto);
                       
                          $Ponto = ms_newLineObj();
                          $Ponto->addXY( $x, $y );
                          $ShapePonto = ms_newShapeObj( MS_SHAPE_POINT );
                          $ShapePonto->add( $Ponto );
                                                   
                          echo $ShapePonto->classindex; //Show 0
                          echo $layer->numclasses; //Show 2
                          $ShapePonto->set('classindex',1);
                          echo $ShapePonto->classindex; //Show 1
                         
                          $ShapePonto->set('text',$cd_fornecedor);
                          $layer->addFeature( $ShapePonto );
                          echo $ShapePonto->classindex; //Show 1
                       
                           $Ponto->free();
                           $ShapePonto->free();                       
                           unset($Ponto);
                           unset($ShapePonto);
                    }                  
            }
        }

    Now, how I can do to set the indexclass correctly?How I can change 
betwen the class using Mapscript?
    I'm using version 4.02.

    Sorry my poor english.
    Thank's for help.

==================================================================
Fernando Simon
DataBase Manager, Mapserver, OracleSpatial and PostGis Developer
G10 - Laboratório de Computação Aplicada
MapOracleSpatial developer
http://g10.cttmar.univali.br
==================================================================

--------------050707070105030603090803
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
  <title></title>
</head>
<body bgcolor="#ffffff" text="#000000">
Hi,&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; I am with some problems with label items. I have one layer with two
classes and I don't have data because I NEED to use FEATURE. <br>
&nbsp;&nbsp;&nbsp; Well, I'm using mapscript to set and add the feature, this items
are draw correctly, they appear in the map. They are drawed using first
class definitions. <br>
&nbsp;&nbsp;&nbsp; Now I need to set correctly the class using mapscript. I tried to
set the classindex in "ms_newShapeObj", the same that I use in
"addFeature". I set this value before I execute "addFeature". But the
data always drawed by first class. When I execute an echo before set
the classindex was show 0 and after I changed, was show the value that
I set, but always the feature it's drawed by first class. I changed the
values to many options (1, 2, 3....) but without effect.<br>
&nbsp;&nbsp;&nbsp; I can't to define one EXPRESSION in class because I don't have
anything to define. The feature (shapeObj) only support to change two
attributes "text" and "classindex". Text to label and index to class,
correct?<br>
<br>
&nbsp;&nbsp;&nbsp; I used this layer:<br>
<br>
layer<br>
&nbsp;&nbsp;&nbsp; name 'test'<br>
&nbsp;&nbsp;&nbsp; type point<br>
&nbsp;&nbsp;&nbsp; status off<br>
&nbsp;&nbsp;&nbsp; labelcache on<br>
&nbsp;&nbsp;&nbsp; class<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;symbol 'coleta'<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;color 255 0 0<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;outlinecolor 255 255 255<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;size 10<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; label<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; antialias on&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; color 255 255 255<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; outlinecolor 0 0 0<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; buffer 2<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; font verdana<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; type truetype<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; force false<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; size 8<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; position ll<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br>
&nbsp;&nbsp;&nbsp; end<br>
&nbsp;&nbsp;&nbsp; class&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;color 0 0 0<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;outlinecolor 255 255 255<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;symbol 'sede'<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;size 10<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; label<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; antialias on<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; color 125 255 155<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; outlinecolor 125 0 123<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; buffer 2<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; font verdana<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; type truetype<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; force true<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; size 8<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; position cc<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; end&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br>
&nbsp;&nbsp;&nbsp; end<br>
end&nbsp;&nbsp; <br>
<br>
&nbsp;&nbsp;&nbsp; I changed many values in this layer, labelcache, force,
position...... but always the same efect. First class.<br>
<br>
&nbsp;&nbsp;&nbsp; And I use this mapscript code:<br>
<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($layer_name == 'test')<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ociConectar();&nbsp; //Connect to database<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ociExecutar( $pesq_faz_suinos);&nbsp; //Execute the query<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p = ms_newpointObj();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; while (list($cd_fornecedor, $x, $y ) = ociTupla()) <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $p-&gt;setXY($x, $y);&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if ($circle-&gt;contains($p))<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; isset($ShapePonto);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; isset($Ponto);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $Ponto = ms_newLineObj();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $Ponto-&gt;addXY( $x, $y );<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $ShapePonto = ms_newShapeObj( MS_SHAPE_POINT
);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $ShapePonto-&gt;add( $Ponto );<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $ShapePonto-&gt;classindex; //Show 0<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $layer-&gt;numclasses; //Show 2<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $ShapePonto-&gt;set('classindex',1); <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $ShapePonto-&gt;classindex; //Show 1<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $ShapePonto-&gt;set('text',$cd_fornecedor);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; $layer-&gt;addFeature( $ShapePonto );<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; echo $ShapePonto-&gt;classindex; //Show 1<br>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; $Ponto-&gt;free();<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; $ShapePonto-&gt;free();&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; unset($Ponto);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; unset($ShapePonto);<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; <br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>
<br>
&nbsp;&nbsp;&nbsp; Now, how I can do to set the indexclass correctly?How I can change
betwen the class using Mapscript?<br>
&nbsp;&nbsp;&nbsp; I'm using version 4.02.<br>
<br>
&nbsp;&nbsp;&nbsp; Sorry my poor english.<br>
&nbsp;&nbsp;&nbsp; Thank's for help.<br>
<br>
<font face="Arial" size="2"><span
 style="font-size: 10pt; font-family: Arial;">==================================================================
<br>
Fernando Simon<br>
DataBase Manager, Mapserver, OracleSpatial and PostGis Developer <br>
G10 - Laborat&oacute;rio de Computa&ccedil;&atilde;o Aplicada<br>
MapOracleSpatial developer <br>
<a href="http://g10.cttmar.univali.br">http://g10.cttmar.univali.br</a>
<br>
==================================================================</span></font><br>
</body>
</html>

--------------050707070105030603090803--



More information about the mapserver-users mailing list