Opened 17 years ago

Last modified 16 years ago

#2236 new defect

mapserver 4.10.2 does not render tiled shapefile data layers with missing shapefiles.

Reported by: gwatmuff Owned by: sdlime
Priority: normal Milestone:
Component: MapServer CGI Version: 4.10
Severity: normal Keywords:
Cc:

Description

Up until mapserver 4.8.4, we have been able to render multiple shapefile data layers using a single tileindex shapefile. Each tile in the tileindex dbf is represented by a directory e.g. 'birdata/sitespecies/tile100'. The tiled shapefile data layer under this tileindex is changed on the fly e.g. 'map_Species_data=species208' and never fully covers all tiles referenced in the tileindex shapefile. If birdata/sitespecies/tile100/species208.shp is not present, mapserver 4.10.2 refuses to draw the layer saying:

msDrawMap(): Image handling error. Failed to draw layer named 'Species'. msSHPOpenFile(): Unable to access file. (/home/graeme/projects/birdata/extra/conf/mapserver/birdata/sitespecies/tile100/species208.shp) msSHPOpenFile(): Unable to access file. (/<dirpath>/data/vector/birdata/sitespecies/tile100/species208.shp)

Logical, but very inconvenient!

Our tileindex covers about 1000 tiles and there are over 800 species (data layers). Individually those 800 data layers only cover on average about 10 -15% of the area covered by the tileindex.

Generating empty shapefiles to fill the gaps in the tiled shapefile data layers might be a solution, but would necessitate creating about 700,000 x 3 = 2.1million useless, empty files. Another solution might be to create over 800 tileindex files (one for each data layer) and change them on the fly, but that exercise would not be trivial and involve creating greater complexity in the data structure.

Basically, we would prefer the missing shapefiles be simply ignored (as has been the case up to and including mapserver version 4.8.4) rather than now causing a fatal error. I am not sure if this change is a defect or a change of policy so forgive me if I have misjudged the situation.

Our mapserver 4.8.4 was built in the usual manner from source. Mapserver 4.10.2 was installed from rpms using yum install mapserver.

The two mapserver versions were installed on the one physical platform (fedora 7) and compared side by side under apache and using the very same mapfile and data set.

We currently use mapserver 4.4 in production at www.birdata.com.au and it performs just great - many thanks!

Mapfile cut: SHAPEPATH "/<dirpath>/data/vector" DATAPATTERN ".*"

LAYER

NAME "Species" GROUP "species" TILEITEM "location" TILEINDEX "birdata/sitespecies" DATA "species_all" STATUS OFF TYPE POINT TRANSPARENCY 80 MAXSCALE 1000000 CLASS

NAME "present" COLOR 165 70 70 SYMBOL 7 SIZE 10

END METADATA

"wms_title" "Species"

END

END

Change History (1)

comment:1 by gwatmuff1, 16 years ago

Hi Steve,

This is no longer a problem to us. As far as we are concerned now this ticket can be closed. However this may not suit all folks.

Graeme Watmuff

Note: See TracTickets for help on using tickets.