What is the best open-source web mapping solution for handling 3000+ polygons

I would create a image service (raster layer) and serve it out with Web Map Service (WMS). This way you can use any API framework which you feel comfortable with as long as it supports WMS (OpenLayers does). You can use WMS to show a layer of all polygon features then use WMS's GetFeatureInfo onclick to pull up information on that polygon.

If for any reason you need the vector data on the map, you could create it dynamically onclick with the GetFeatureInfo response data.


See TileMill, which can rasterize UTFGrid interaction into an MBTiles file and host it on MapBox or an open-source MBTiles server implementation like TileStache.

Here's it with lots and lots of polygons. This approach requires you to rasterize - aka bake - tiles, but is essentially the only way to do what you want without having massive server resources, a custom app, or a very restricted set of browsers.


Scale dependency and a spatially indexed database will be key to this issue. You should be able to represent watersheds using at least two, possibly three or four, levels. For example, you could divide the data into Major (the 18), Minor (some combination of all mid-scale watersheds that all fall within the same Major), and Tertiary (the 3000 polygons). This would give you three different vector layers/services.

Use scale dependency to draw only the appropriate service depending on the user's zoom level.

Use a database with spatial indexing to ensure the services draw quickly, and draw only the portion that is needed to fill the current view window.

Alternatively, you might consider creating tiles of the watershed maps (again, created based on appropriate scales for each layer) and serve them that way.

Alot of questions already exist on this site that recommend appropriate open source solutions to employ these strategies.