Adding a polygon to a shapefile
Nebojsa Balic
nebojsa.balic at FELIS.UNI-FREIBURG.DE
Tue Sep 12 05:31:23 PDT 2006
Dear Mapserver users,
I have problem in creating a polygon shapefile. I am trying
to write a PHP script aiming to add a polygon to a newly
created shapefile by using the method addShape:
$my_line = ms_newLineObj();
$my_line->addXY($x_1,$y_1);
$my_line->addXY($x_2,$y_2);
.
.
.
$my_shape=ms_newShapeObj(MS_SHAPE_POLYGON);
$my_shape->add($my_line);
$file_name="C://my:shape//shape";
$my_file=ms_newShapefileObj("$file_name",MS_SHP_POLYGON);
$dbfFile = dbase_create( $file_name.".dbf",
array(array("ID", "N", 5,0)));
$ft=$my_file->addShape($my_shape);//PROBLEM
dbase_add_record($dbfFile, array(1));
dbase_close($dbfFile);
$my_file->free();
return value of $ft is 0 which means that method addShape
has been succesfully implemented. However, the members
values of my Shapefileobj are 0 for numshapes and not
available for source and bounds. I checked my polygon and
all member variables are OK, so I am not sure what addShape
function actually does and if it is necessary to add each
point to the shapefile with the method addPoint. Where do I
go wrong?
2. After I added points in the line and then the line to
the shape (the coordinates of the last and first point are
same), I realised that member variable bounds of the shape
is not provided. I went around this problem by finding the
smallest and greates x and y coordinates of the points I
added to the line i.e. the shape which I then used to set
boundaries:
$my_shape->bounds->set(minx,$x_min);
$my_shape->bounds->set(maxx,$x_max);
$my_shape->bounds->set(miny,$y_min);
$my_shape->bounds->set(maxy,$y_max);
Is this right thing to do and why have not these bounds
calculated automatically?
Thanking in advance
More information about the MapServer-users
mailing list