map performance

Boice Tomlin boice at RUNSKIP.COM
Tue Dec 5 22:52:12 EST 2006


Thanks Steve,

I will save the map file and take a look.  great tip.

In my case I have a few layers which are always on because I know the get
displayed on every request.  For instance I have on layer called county. 
Every contry rendered on the map is from that single layer.

What I do is grab all county data that are complete(a user has complete
data for the chosen layer in that geography) - green - and form a long
regular expression with all thouse counties.  Then I form a class
dynamically and set the color to green.

Then I do the same thing for in-progress data, form a regular expression
from several hundred results, create a class from that same county layer
and set the color to orange.

I'm not sure Steve if I'm hearing you right.  You may be referring to a
completely different method that I'm not getting.  The thing is that the
PHP work described above happens fast, really fast.

The amount of time the maps takes to render is proportionate to the amount
of counties, cities, etc. in my regular expression.

does that make my situation clearer.

thank you for your help,

boice



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



////////////////////////////
Run Skip

boice tomlin

boice at runskip.com

503-528-6204



More information about the mapserver-users mailing list