map performance

Ed McNierney ed at TOPOZONE.COM
Tue Dec 5 19:32:09 EST 2006


Steve -

I agree that Boice should first figure out exactly what kind of map file
is being built; it's hard to tell from the description, but it sounds
like the same source data are being used repeatedly in multiple LAYER
definitions with different selection expressions.  I'm not a MapScript
user, but the "several hundred times" loop sounds like it could be
creating an overly-complex arrangement requiring re-processing of the
same shapefiles.

     - 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
ed at topozone.com 

-----Original Message-----
From: UMN MapServer Users List [mailto:MAPSERVER-USERS at LISTS.UMN.EDU] On
Behalf Of Steve Lime
Sent: Tuesday, December 05, 2006 6:33 PM
To: MAPSERVER-USERS at LISTS.UMN.EDU
Subject: Re: [UMN_MAPSERVER-USERS] map performance

Might be interesting to see what the resulting mapfile (after your
dynamic work) looks like (use $map->save(...)).

We'd really need to know more about the data, how you're doing
classifications and such to comment more. There may be lots of ways to
make things go faster. From the looks of it for each geography (city,
county, tribe, state, nation) you have a bunch of variables that
indicate if a data theme is available. One could organize that data like
so (for example state level data):

State  Hydrography  Watersheds ...
MN     0                    1 
WI      3                    2
IA       3                    0
FL       1                    3

Where 0 means no responce, 1 complete and so on. So in that case your
class definitions would always be the same you'd be simply changing the
variable you're mapping on (e.g. CLASSITEM), and you wouldn't need
dynamic classes (or even MapScript for that matter).  Just thinking out
loud...

Steve

>>> boice tomlin <boice at RUNSKIP.COM> 12/4/2006 1:24:58 PM >>>

Hello users,

The map located here;

http://gisinventory.net/status_maps.html 

takes a while to load.  At least at the national view where there is a
lot of area to render.

I am looking for alternative ways to generate the map that will
significantly improve performance.

Currently I am using php and looping through data and turning on layers
as I go.  The PHP part is lightning fast.  But after I get the map ready
mapserver takes several seconds to generate it.

I'm curious about alternative ways to handle this problem and wonder if
anyone had comments on any of them.

1) modifying the shape files in some way so the layer information is in
those files so that all mapserver has to do is load those files and not
depend on the map files.
2) using a db such as postgres with postgis so that layer information is
available all in one compact source.

Right now I have to generate a bunch of dynamic classes in PHP using the
general method below.

$lyr = $this->ramona_map->getLayerByName("state_yes");
                $cla = $lyr->getClass(0);
                $cla->setExpression("/".$expression."/");
                $lyr->set("status", MS_ON);

I have to do this several hundred times to represent all of the data. 
The time it takes to generate the map seem proportionate to the amount
of layers I make visible.  And again this is on the mapserver side and
not PHP.  PHP does its part of the operation in thousandths of a second.

anyone's thoughts are greatly appreciated.

-boice tomlin



////////////////////////////
Run Skip
http://runskip.com/ 


boice tomlin


boice at runskip.com 


503-528-6204



More information about the mapserver-users mailing list