[Mapserver-users] Re: Draw Circle via PHP/MS
pkishor_98 <pkishor@geoanalytics.com>
pkishor at geoanalytics.com
Mon Jan 20 09:55:48 PST 2003
--- In mapserver-users at yahoogroups.com, "YC Nyon" <ycnyon at p...> wrote:
> I'm trying to draw a circle using the code below. However it gave an
error
> on the last line.
first, what is the error? it is always helpful for others to know what
the error is.
2nd... you can simplify your code a little bit like so (if you so
desire) --
//$p=ms_newPointObj(); // not needed
$circle=ms_newShapeObj(2);
$line=ms_newlineObj();
$clayer = $map->getLayerByName('Circle');
$class = $clayer->getClass(0);
$pi = pi();
$radius = 10;
$inc = 0;
// assuming $x0 and $y0 are the origin of the circle in geog coords
// and $r is the radius
while ($inc <= 360) { // changed
$x = $x0 + ($r * cos(($inc * $pi / 180)));
$y = $y0 - ($r * cos(($inc * $pi / 180)));
$line->addXY($x, $y);
$inc += 10;
}
$clayer->set("status", 1);
$circle->add($line);
> I'm modify it from a snippet I found in the archieves. The map file
contains
> a 'circle' layer.
>
> // DRAW CIRCLE
> $p=ms_newPointObj();
> $circle=ms_newShapeObj(MS_SHAPE_LINE);
> $line=ms_newlineObj();
> $clayer = $map->getLayerByName('Circle');
> $class = $clayer->getClass(0);
>
> $pi=3.141592654;
> $radius = 10;
> for($i=0;$i<2.1*$pi;$i=$i+$pi/100)
> {
> $p->{x} = $real_geo_width + $radius * cos($i);
> $p->{y} = $real_geo_height + $radius * sin($i);
> $p->setXY(($real_geo_width + $radius *
cos($i)),($real_geo_height
> + $radius * sin($i)));
> $line->add($p);
> }
> $circle->add($line);
> $circle->draw($map,$clayer,$image,0,"");
>
>
> Regards
> Nyon
More information about the MapServer-users
mailing list