Shapefile field problem
Jeff McKenna
jmckenna at DMSOLUTIONS.CA
Tue Dec 7 08:17:24 PST 2004
earlier in the thread i suggested dbfdump:
Jeff McKenna wrote:
> Frank would know way more about this than me...but are any of the
> Shapelib utilities (http://shapelib.maptools.org/) useful for you?
> (shpdump, dbfdump)
>
> jeff
Abe Gillespie wrote:
> 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
>
>
>
> 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/
>>> ------------------------------------------------------------
>>>
>>
--
Jeff McKenna
GIS Specialist
DM Solutions Group Inc.
http://www.dmsolutions.ca
More information about the MapServer-users
mailing list