Francesco, This may not be what you are looking for, or it may be stating the obvious, but why not create your shapes in a PostGIS table? Then you could manipulate them quite easily via SQL calls?
HTH, r.b. -----Original Message----- From: UMN MapServer Users List [mailto:[EMAIL PROTECTED] On Behalf Of Francesco Antognini Sent: Tuesday, July 17, 2007 11:12 AM To: [email protected] Subject: Re: [UMN_MAPSERVER-USERS] Setting attributes of shapes on php-mapscript Thanks for all the replies. Calling $shp->initValues() generates this error Fatal error: Call to undefined method ms_shape_obj::initValues() in C:\ms4w\Apache\htdocs\test\test-ms_caplib.php on line 151 Checking the php_mapscript.dll extension reveals that both initValues and setValues are not defined. So php does not support them. Using the dbf tables is a kind of a last resort approach, since the attributes must be generated dynamically for each user (specifications are still sketchy so I can't be more precise). That implies creating temporary dbf tables and shape files, which is not ideal. The other idea I have is to build a module in a different language (java) just to perform the requested functionality and then let php call it when needed. Php can invoke java classes and java seems to support both initValues() and setValues(). However even this approach is less than perfect as it requires additional stuff to be installed and may well present other unexpected pitfalls. Is there any hope that one day php mapscript will be updated ? (shpeobj::clone is missing too...) Thanks for the help. F.Antognini On 7/17/07, Daniel Morissette < [EMAIL PROTECTED]> wrote: > I'm not sure about SWIG MapScript, but in PHP MapScript, the > shape->values[] array is read-only and there is no way to set the > values[] with PHP MapScript. > > If working with a shapefile then the recommended way to update > attributes is to use the PHP dbase functions as was pointed out in > another post earlier in this thread. > > Daniel > > > Rodrigo Del C. Andrade wrote: > > Hi. > > > > As of mapscript 4.10 you need to initialize the shapes to receive > > values. > > try issuing a > > > > $shp->initValues(1); > > > > before setValue. The int argument is the number of values you will > > set in that shape. > > I know this was changed for the SWIG versions of mapscript, I am not > > sure about it on the PHP front, but someone will correct me if its not > > the case. > > > > Cheers, > > > > Rodrigo > > > > > > > -- > Daniel Morissette > http://www.mapgears.com/ > -- Francesco Antognini Computer Consultant Switzerland [EMAIL PROTECTED]
