Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm interested in the fastest way to serve PostGIS features. I can find several WMS improvements and alternatives (MapProxy, TileCache, Mapnik...) but not so many WFS Open Source improvements and alternatives. I'm not interested in tiles, but in polygons over my base layer. Served fast.

Could you please me point in the right direction?

Many thanks in advance, and best regards


I forgot to mention that my app shows cadastral information. And cadastral polygons must be selectable (not editable, they are only highlighted when you click on them).

I'm using right now a mix of WMS + Django generating GeoJSON objects when the user clicks on a part of the map, to avoid situations like thousands of polygons at same time in the client (OpenLayers).

I don't know if I'm in the right way (should I avoid potentially hard situations like thousands of pols in the client by rendering them via WMS or any other solution? Should I improve the way the polygons are served?)

share|improve this question
What hardware do you have? – Mapperz Aug 23 '11 at 18:45
Ubuntu 10.04 32bits 512 MB RAM, running under a VMWare Server. It's a development machine, but I don't have access to another one yet. It should work reasonably well here (a requisite) – jorgeas80 Aug 23 '11 at 19:46

What about simplifying geometries?

Or maybe a combination of WFS, WFS with simplified features and WMS?

share|improve this answer
Sounds good. Right now, I'm rendering the pols and serving them via WMS. I think the client won't handle millions of polygons at same time, but I may be wrong... – jorgeas80 Aug 25 '11 at 8:39

GeoServer provides a user setting to control the number of decimal places in the geometries which was put in there to speed up WFS serving.

Also make sure that the server is compressing the output only if your client can efficiently uncompress it.

Finally I've heard good things about tiny OWS in terms of speed.

share|improve this answer
I've heard about tiny OWS but never used it. Thanks for suggestion! – jorgeas80 Aug 25 '11 at 8:35

WFS caching might suit your needs. As far as I know, there are two open source solutions providing WFS caching: TileStache and GeoWebCache.

In TileStache's home page, features section it is said "Generates vector tiles from OGR datasources in GeoJSON usable in Polymaps"

GeoWebCache has some WFS caching capabilities since version 1.1.0 (the current one is 1.2.6):

GeoWebCache 1.1.0 (finally) released


1.c Basic WFS caching GeoWebCache 1.1.0 supports very basic WFS caching. The results from queries are stored to disk, there are currently no functions for inspecting them or programmatically removing them. The algorithm relies on computed hashes and does not check for uniqueness, so there is a minute chance for collisions. The motivation for this development was the SHP-ZIP (zipped shapefile) outputformat in GeoServer. These files can be huge and tremendously expensive to compute. This WFS service is, in its current state, not intended to be used for more complicated cases.

Unfortunately I have never worked with TileStache neither GeoWebCache, so I cannot share any experience about WFS caching.

share|improve this answer
Thanks. I'm considering 2 options: render my polygons and serve them via WMS + cache (there are millions of them, maybe too much for the client...) or try to serve my polygons via WFS + cache. I'm working with the first option right now. – jorgeas80 Aug 25 '11 at 8:37
I recommend the first option (WMS rendering on server side + cache). The WFS option implies that rendering will be done on client side. In my experience this is a problem for users having old web browsers or computers, a variable that you cannot control. – dariapra Aug 25 '11 at 12:10

I'm developing a big web-gis, I work with a lot of data (about 700.000 features per layer) The only solution is the one that you are doing, WMS for rendering the features and WFS for getting feature's info. Whta I'm doing (with good performance) is:

  • Geoserver (with native JAI library)
  • When the user click on the map, a wms getfeatureinfo is used to get the information (both shape and data) of the selected feature (here you should implement some filtering fucntion, if you have overlapped features)
  • The result of getFeatureInfo is added as feature on another layer to simulate the "selection highlight"
share|improve this answer
Thanks! The project was finally cancelled, but I think your solution is a good one. – jorgeas80 Sep 11 '12 at 17:43

Solid State DRAM Server

"DRAM bit demand coming from the server sector will climb 93.7% on year in the second half of 2011"


share|improve this answer
Thanks. I don't control this, but I can suggest it... – jorgeas80 Aug 25 '11 at 8:36

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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