[Chameleon-dev] [Bug 1132] New: WMS browser fails on invalid
structure of capabilities DBF
bugzilla-daemon at bugzilla.maptools.org
bugzilla-daemon at bugzilla.maptools.org
Thu Aug 25 20:39:26 EDT 2005
http://bugzilla.maptools.org/show_bug.cgi?id=1132
Summary: WMS browser fails on invalid structure of capabilities
DBF
Product: Chameleon
Version: 2.2
Platform: PC
OS/Version: Windows XP
Status: NEW
Severity: normal
Priority: P2
Component: Widget
AssignedTo: chameleon-dev at lists.maptools.org
ReportedBy: jacob.delfos at maunsell.com
Mentioned this on the list a while ago. Not sure if others ran into it....
In server_data_manager.php, an array is built which is added to capab.dbf as a
new record. Elements are added to this array, on the basis of whether or not
certain information is available. This is perhaps a bit risky, because unless
the array contains the right number of elements, it cannot be added. Also, if an
element is missing, the other elements end up in the wrong field.
When I added my WMS layer (from a Mapserver WMS server), the following elements
were NOT added to the array, which WERE created as fields in the dbf:
mdu_type
mdu_fmt
mdu_url
minscale
maxscale
Bart mentioned these elements were added as enhancement for Geodan.
Because no values for these fields are added to the new_rec array, the values
are offset, and the new_rec array does not contain the correct amount of
elements. Looking at the area starting at line 1783 in server_data_manager, it
seems the elements added to the array match the structure of the dbf very poorly
(a lot seems to depend on EXTRACTABLE_LAYER being true, which if it were, would
make more things go wrong; EXTRACTABLE_LAYER seems to be initiated as false, and
never changed to true anywhere).
To fix it, I commented out line 240,241,242.252,253 in dbf.php
Those lines say:
//array_push( $defs, array( "mdu_type", "C", 50 ) );
//array_push( $defs, array( "mdu_fmt", "C", 50 ) );
//array_push( $defs, array( "mdu_url", "C", 255 ) );
[...]
//array_push( $defs, array( "minscale", "N", 16, 5 ) );
//array_push( $defs, array( "maxscale", "N", 16, 5 ) );
That makes the structure of capab.dbf match what is being done in
server_data_manager.php
I do not have CVS update access to php_utils, but either way I'd be hesitant to
make these changes, as I'm not too familiar with this widget.
Jacob
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
Please do NOT reply to this email, use the link above instead to
login to bugzilla and submit your comment. Any email reply to this
address will be lost.
More information about the Chameleon-dev
mailing list