What are the FOSS equivalents to these ArcGIS products?

To store the data, the first two alternatives to mention are PostGIS and SpatiaLite.

  • SpatiaLite is a SQLite database with spatial capabilities which means it is file based, compact, and fast.

  • PostGIS is spatial capabilities on a PostgreSQL database. That means it is very powerful with capacity to handle large data sets, complex queries in a efficient way.

Before moving on to the desktop you should be aware that very many tasks can be done very efficiently directly in the database. Most things you usually do in ArcMap sitting waiting for different dialogs to pop up you will do many times faster directly with a few lines of SQL code. That means that you can also store what you did and do it again on another data set very easily by just saving your SQL code. Many of the PostGIS questions here are about how to write those queries, so you can get an idea about what can be done by browsing PostGIS tagged questions.

Then the desktop side. There are a lot of desktop solutions. I think it is time to admit that on the desktop side ESRI is good. As said before most of the tasks you do in ArcMap are better done deeper down in the database, but when it comes to the tasks where you need the desktop solution ArcMap is good. What I use is QGIS, and if I had a budget to spend I would move the ESRI license costs to support bug-fixing in QGIS. QGIS is great software that can do more or less everything that ArcMap can. But maybe one or two ArcInfo licenses (in money) are needed to polish it. You can also take a look at Open Jump, GvSIG, uDIG and more.

When it comes to web services you have MapServer, GeoServer, TinyOWS, and more.

  • GeoServer is probably the easiest to get started with since it has a quite intuitive web interface. GeoServer can do most of the things you want. It can serve WMS WFS Tiled services and so on. It is all written in Java.

  • MapServer is written in C and I think it is fair to say it is the king of WMS-services. At least it won last year's shootout on FOSS4G conference (ESRI didn't dare to participate). Mapserver is configured through a "map-file" and I don't know of any graphical interface. But for serious wms-serving it is a very interesting alternative.

  • For editable wfs-services you have GeoServer mentioned before but also TinyOWS. TinyOWS is a small wfs-server written in C. Lately it has been more integrated in Mapserver since you can use the same map-file for both.

Then the client side on the web. I don't know very much about all the possibilities there but most solutions are built in one way or another on OpenLayers which is a Javascript library.

Moving from the ESRI world I think opens another very important possibility for you. If you want, you are free to move away from the Windows platform too. You can put everything on any Linux-distro.

The software mentioned above together with Linux will reduce the need of hardware a lot.

An example of well working FOSS software is the map of Norgeskart, from the official map authority in Norway.

In bottom they use PostGIS serving Mapserver. Caching tiles in Geowebcache and using an OpenLayer based client on top. It is not flashy like a Silverlight solution but that is possible to do too.

They used ESRI software before but had to leave that when their needs increased in terms of capacity and speed.


Nicklas has already pointed out the most popular open source packages. If you are interested in a closer coupling of desktop and server GIS, you might want to have a closer look at QGIS.

Similar to the setup you described for ArcGIS, there is such a setup for QGIS:

  • PostGIS for data storage
  • QGIS Desktop to edit the data and create the map document
  • QGIS Server to create web services
    • QGIS Server is a WMS & WFS server that runs under Windows, Linux and Mac and uses Apache.
    • Creating a service is done by simply putting the QGIS (Desktop) project file into the correct server folder. (Example: http://linfiniti.com/2010/08/qgis-mapserver-a-wms-server-for-the-masses/)
    • Tutorials can be found on http://www.qgis.org/wiki/QGIS_Server_Tutorial
  • QGIS Client to create the web front-end
    • The client is based on OpenLayers and GeoExt.
    • Examples: http://webgis.uster.ch/

Speaking from the perspective of what I use day-to-day (though this is colored by my involvement in most of the projects):

PostGIS, SQLite, and Shapefiles, in order from best database to most portable format.

  • ArcMap desktop to edit the data and compile the map document

QGIS for spatial operations, TileMill to compile the map document (assuming that you mean map document as in styles, combination of datasources, and so on)

TileStream for serving generated maps from TileMill, or TileStache for live rendering. However, many, many groups are going the route of generating maps rather than live serving given the experience of keeping servers online and fast.

  • ArcGIS Server JavaScript API to create the end-user maps from the web services

Leaflet if you want to avoid doing extra development. TurfJS for analysis tasks in-browser.