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
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