Shapefile field problem
Abe Gillespie
agillesp at VT.EDU
Tue Dec 7 08:27:05 PST 2004
Attached is the problematic shapefile. I don't create it, I get it
from a customer. However, if the need arises, I should be able to get
detailed information on how the shapefile comes to be. Using the
following PHP script should reveal the problem. I have not tried
DBFDUMP; I don't know where to get it.
for ($i = 0; $i < $map->numlayers; $i++)
{
$l = $map->getLayer($i);
putBrLine($l->name.", type: ".$l->type);
if ($l->data != null) // Shape files with data.
{
$l->open();
$s = $l->getShape(-1, 0);
$vals = $s->values;
putBrLine("field count: ".count($vals));
while ($fld = current($vals))
{
putBrLine(" ".key($vals));
next($vals);
}
$s->free();
$l->close();
}
}
Thanks.
-Abe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: field_issues.zip
Type: application/zip
Size: 1156 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/mapserver-users/attachments/20041207/e975307d/attachment.zip>
-------------- next part --------------
On Dec 6, 2004, at 9:13 PM, Ed McNierney wrote:
> Abe -
>
> Can you post the shapefile somewhere we can look at it?
>
> The field definitions for a shapefile (DBF) are stored in a separate
> header, describing each field; you can't get the field definitions from
> the first record. In fact, you can't read the first record properly
> until *after* you've figured out the field definitions.
>
> Are you creating this shapefile yourself? Could you be creating a
> defective file? Have you tried running DBFDUMP on it?
>
> - Ed
>
> Ed McNierney
> President and Chief Mapmaker
> TopoZone.com / Maps a la carte, Inc.
> 73 Princeton Street, Suite 305
> North Chelmsford, MA 01863
> Phone: +1 978 251-4242 Fax: +1 978 251-1396
>
> -----Original Message-----
> From: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU]
> On
> Behalf Of Abe Gillespie
> Sent: Monday, December 06, 2004 8:14 PM
> To: MAPSERVER-USERS at LISTS.UMN.EDU
> Subject: Re: [UMN_MAPSERVER-USERS] Shapefile field problem
>
> It's a regular shapefile. I think I've mostly narrowed it down. It
> seems to me (though I may be completely off) that MapServer loads the
> first record of the DBF in order to get the field definitions. If the
> first record has a string field and the value is zero length it won't
> give me the field (though the field count is always correct). In
> addition, it won't give me any fields after that either. If, however,
> I
> make sure that field has some value (a dash, an "x", whatever) then the
> field definition will come in correctly. I still haven't narrowed down
> a problematic number field though. Mind you, this is all done in
> MapServer PHP v. 4.2.0.
>
> -Abe
>
> On Dec 6, 2004, at 6:15 PM, Daniel Morissette wrote:
>
>> Abe Gillespie wrote:
>>> A good amount of fields aren't showing up in MapServer for me. I use
>
>>> the following PHP script to dump out all layers and their fields for
>>> debugging. Does MapServer have problems with certain data types or
>>> certain values in a row?
>>>
>>
>> Are you using a tiled shapefile layer or is this a regular shapefile
>> layer?
>>
>> --
>> ------------------------------------------------------------
>> Daniel Morissette dmorissette at dmsolutions.ca
>> DM Solutions Group http://www.dmsolutions.ca/
>> ------------------------------------------------------------
>>
>
More information about the MapServer-users
mailing list