Add polygon in shapefile

blaise bpicinbono at WORLDONLINE.FR
Thu Feb 9 08:36:52 PST 2006


Should work although I don't remember exactly how. I think you have to define 
only one newLineObj and add to it all the vertex of your polygon PLUS the 
first vertex. Then put this single closed line into your new shape.
Something like :
$line_a = ms_newLineObj();
$line_a->add($ecluse_sel_a);
$line_a->add($ecluse_sel_b);
$line_a->add($ecluse_sel_c);
$line_a->add($ecluse_sel_d);
$line_a->add($ecluse_sel_a);
$shape->add($line_a);
$zone_shp->addShape($shape);
$shape->free();
$zone_shp->free();

Hope it'll help.
Blaise


On Thursday 09 February 2006 15:36, LAGACHE Alexandre - VNF/Dir. 
Infrastructure-Environnement/Div. Géo Carto wrote:
> Hello All,
>
> I'd like to dynamically add polygons to a shapefile (php mapscript 4.80b).
> Here is what I do :
>
> $zone_shp = ms_newShapefileObj("zone_shp", MS_SHP_POLYGON);
> $shape = ms_newShapeObj(MS_SHAPE_POLYGON);
> $ecluse_sel_a = ms_newPointObj();
> $ecluse_sel_a-> setxy($mix,$miy);
> $ecluse_sel_b = ms_newPointObj();
> $ecluse_sel_b-> setxy($mix,$may);
> $ecluse_sel_c = ms_newPointObj();
> $ecluse_sel_c-> setxy($max,$may);
> $ecluse_sel_d = ms_newPointObj();
> $ecluse_sel_d-> setxy($max,$miy);
> $line_a = ms_newLineObj();
> $line_a->add($ecluse_sel_a);
> $line_a->add($ecluse_sel_b);
> $line_b = ms_newLineObj();
> $line_b->add($ecluse_sel_b);
> $line_b->add($ecluse_sel_c);
> $line_c = ms_newLineObj();
> $line_c->add($ecluse_sel_c);
> $line_c->add($ecluse_sel_d);
> $line_d = ms_newLineObj();
> $line_d->add($ecluse_sel_d);
> $line_d->add($ecluse_sel_a);
> $shape->add($line_a);
> $shape->add($line_b);
> $shape->add($line_c);
> $shape->add($line_d);
> $zone_shp->addShape($shape);
> $shape->free();
> $zone_shp->free();
>
> It seems to work fine but when I look at the layer, objects are multiline
> instead of polygons...
> Any idea ??? What am I doing wrong ?
>
> Thanks !
>
> Alexandre LAGACHE



More information about the MapServer-users mailing list