[Mapserver-users] ProBlem Drawing a Line(circle) AS a second Layer on top the first Layer

Terrence Lalla t_lalla20 at yahoo.com
Thu Feb 6 19:14:14 EST 2003


--0-2054944181-1044576854=:28754
Content-Type: text/plain; charset=us-ascii


Hello all,

// the code

<?php
dl("php_mapscript_37.dll");

$map = ms_newMapObj("try1.map");
      
function Cal($x,$y,$radius)
{
 
 $lineObj = ms_newLineObj();
 for ($i=0 ; $i <=360 ;$i = $i +10)
 {
  $angulo = deg2rad($i);
  $xcal = $x + ($radius*cos($angulo));
  $ycal = $y + ($radius*sin($angulo));
  $lineObj->addXY($xcal,$ycal);
 }
 return($lineObj);
}
     
$array=$map->getAllLayerNames();
$p= ms_newpointObj();
$circle= ms_newshapeObj(MS_LINE);
$line= ms_newlineObj();
$layer = $map->getLayerByName('Circle');
$class = $layer->getClass(0);
$image = $map->draw();

$x=200;
$y=200;
$radius = 50;
$line = Cal($x,$y,$radius);
$test=$circle->add($line);
$test1=$circle->draw($map,$layer,$image,undef,"damage");
var_dump($line);
var_dump($test);
var_dump($test1);
$image_url = $image->saveWebImage(MS_GIF,1,1,0);
?>
//end code 

comments: the line show the $line->numpoints member containing the appropriate number of points. However for the $circle->add($line) the result returns int(0). I suppose that the process failed. Also, for the $test1=$circle->draw($map,$layer,$image,undef,"damage") the result returns int(0). Hence the circle layer is not drawn on top the first layer.

 

//mapscript code

NAME Trinidad

EXTENT 606030.98 1108051.15 739443.72 1201934.19

SIZE 400 400

UNITS METERS

SHAPEPATH "data"

WEB

IMAGEPATH "c:\apache\htdocs\tmp\"

IMAGEURL "\tmp\"

END

LAYER

NAME "Coastline1"

DATA coastline1

STATUS ON

TYPE line

CLASS

COLOR 220 220 220

OUTLINECOLOR 100 100 100

END

END

LAYER

NAME "Circle"

STATUS on

TYPE Point

CLASS

COLOR 220 220 220

OUTLINECOLOR 100 100 100

END

END

 

END

//end mapscript code.

Can anyone suggest a possible solution to the problem ?

Also for the x,y, and radius values should I use pixel coordinates or georef coordinates for the map?

Thanks in Advance.

Terrence




---------------------------------
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now
--0-2054944181-1044576854=:28754
Content-Type: text/html; charset=us-ascii

<P>Hello all,</P>
<P>// the code</P>
<P>&lt;?php<BR>dl("php_mapscript_37.dll");</P>
<P>$map = ms_newMapObj("try1.map");<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>function Cal($x,$y,$radius)<BR>{<BR>&nbsp;<BR>&nbsp;$lineObj = ms_newLineObj();<BR>&nbsp;for ($i=0 ; $i &lt;=360 ;$i = $i +10)<BR>&nbsp;{<BR>&nbsp;&nbsp;$angulo = deg2rad($i);<BR>&nbsp;&nbsp;$xcal = $x + ($radius*cos($angulo));<BR>&nbsp;&nbsp;$ycal = $y + ($radius*sin($angulo));<BR>&nbsp;&nbsp;$lineObj-&gt;addXY($xcal,$ycal);<BR>&nbsp;}<BR>&nbsp;return($lineObj);<BR>}<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>$array=$map-&gt;getAllLayerNames();<BR>$p= ms_newpointObj();<BR>$circle= ms_newshapeObj(MS_LINE);<BR>$line= ms_newlineObj();<BR>$layer = $map-&gt;getLayerByName('Circle');<BR>$class = $layer-&gt;getClass(0);<BR>$image = $map-&gt;draw();</P>
<P>$x=200;<BR>$y=200;<BR>$radius = 50;<BR>$line = Cal($x,$y,$radius);<BR>$test=$circle-&gt;add($line);<BR>$test1=$circle-&gt;draw($map,$layer,$image,undef,"damage");<BR>var_dump($line);<BR>var_dump($test);<BR>var_dump($test1);<BR>$image_url = $image-&gt;saveWebImage(MS_GIF,1,1,0);<BR>?&gt;<BR>//end code </P>
<P>comments: the line show the $line-&gt;numpoints member containing the appropriate number of points. However for the $circle-&gt;add($line) the result returns int(0). I suppose that the process failed. Also, for the $test1=$circle-&gt;draw($map,$layer,$image,undef,"damage") the result returns int(0). Hence the circle layer is not drawn on top the first layer.</P>
<P>&nbsp;</P>
<P>//mapscript code</P><FONT size=2>
<P>NAME Trinidad</P>
<P>EXTENT 606030.98 1108051.15 739443.72 1201934.19</P>
<P>SIZE 400 400</P>
<P>UNITS METERS</P>
<P>SHAPEPATH "data"</P>
<P>WEB</P>
<P>IMAGEPATH "c:\apache\htdocs\tmp\"</P>
<P>IMAGEURL "\tmp\"</P>
<P>END</P>
<P>LAYER</P>
<P>NAME "Coastline1"</P>
<P>DATA coastline1</P>
<P>STATUS ON</P>
<P>TYPE line</P>
<P>CLASS</P>
<P>COLOR 220 220 220</P>
<P>OUTLINECOLOR 100 100 100</P>
<P>END</P>
<P>END</P>
<P>LAYER</P>
<P>NAME "Circle"</P>
<P>STATUS on</P>
<P>TYPE Point</P>
<P>CLASS</P>
<P>COLOR 220 220 220</P>
<P>OUTLINECOLOR 100 100 100</P>
<P>END</P>
<P>END</P>
<P>&nbsp;</P>
<P>END</P>
<P></FONT>//end mapscript code.</P>
<P>Can anyone suggest a possible solution to the problem ?</P>
<P>Also for the x,y, and radius values should I use pixel coordinates or georef coordinates for the map?</P>
<P>Thanks in Advance.</P>
<P>Terrence<BR></P><p><br><hr size=1>Do you Yahoo!?<br>
<a href="http://rd.yahoo.com/mail/mailsig/*http://mailplus.yahoo.com">Yahoo! Mail Plus</a> - Powerful. Affordable. <a href="http://rd.yahoo.com/mail/mailsig/*http://mailplus.yahoo.com">Sign up now</a>
--0-2054944181-1044576854=:28754--



More information about the mapserver-users mailing list