I am a Flex developer that works with ESRI's REST Flex API most of the time, but have been exploring other options in the Flex world of web mapping. I have been using WebOrb's implementation of Remote Objects for other, non-spatial development and have been totally blown away by the performance gains I have seen compared with traditional web services (SOAP and even HTTP). And this has given birth to the following idea.

Instead of setting up a traditional WMS with MapServer, I am toying with the idea of firing the shp2img directly via remote objects, and sending that image back to the client to be drawn on top of the map. The only drawback to this approach that I see is that it is not very interoperable, i.e., no one else can consume this data but I am not too concerned with that right now.

I am comfortable with MapServer but far from a power user, so I am hoping to get some potentially valuable insights(i.e. warnings,ridicule...etc) from other MapServer experts. This idea is based on the assumption that shp2img will be faster at generating a tile than its equivalent WMS GetMap request.

Any thoughts.


Certanly MapServer - and I guess that also GeoServer - is not a very fast WMS server. However, I think you are missing WMS caches like TileCache or GeoWebCache. WMS caches store already pre-rendered images and serve them on request. If the requested image is not available in the cache (cache miss), the request is forwarded to the WMS server and the image is (a) sent to client and (b) stored in the cache for future requests. On cache hit, WMS caches are very fast. Besides, you can seed the WMS cache before the service is released, so users will find a responsive system from the first moment.

I have worked with TileCache and made it serve prerendered images in milliseconds, and using as server old desktop Pentium IV, 1GB RAM computers.

The main drawback WMS cache systems have is that they work at a finite and discrete set of scales (or map resolutions). Any set of scales can be used, say {1:50000, 1:25000, 1:12500, 1:6250, 1:3125, ...}; in this example requesting a image at scale 1:40000 would not be possible if using this example set.

| improve this answer | |
  • 1
    I haven't seen the complete results of the FOSS4G 2010 WMS Shootout yet, but it sounds like MapServer is one of the faster WMS servers out there. Rendering on the fly will almost never beat serving from tile caches, but there is a lot of optimization that can be done to speed up rendering. – DavidF Sep 24 '10 at 20:29
  • You are right, what I wanted to mean is what you said about rendering on the fly currently much slower than serving from tile caches. Sorry, English is not my native language! – dariapra Sep 25 '10 at 1:07
  • Thanks for the tips about TileCache/GeoWebCache, there is so much good stuff out there... – user890 Sep 27 '10 at 11:37

I would discourage using shp2img for anything other than displaying simple previews of single shapefiles on e.g. download pages. Sooner or later someone will want to include the layers into more complex maps, use panning/zooming/identifying, etc. All this comes ready-made with a WMS server and corresponding client. Using a cache is certainly a good way to go if you're aiming for better performance of you WMS.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.