Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I'm a long-term user of ESRI software, and I now have a need to use free and open source software.

I've been reading about Open Layers, PostgreSQL, PostGIS, GeoServer and MapServer but I can't find a good overview stating what each product does, why it's needed, and how they all fit together.

For example, http://www.osgeo.org/ and http://freegis.org/ both list a bunch of products but don't give enough information for me to decide which ones are relevant.

In ArcGIS, I would use the following:

  • file geodatabase or ArcSDE geodatabase for data storage
  • ArcMap desktop to edit the data and compile the map document
  • ArcGIS Server to create web services
  • ArcGIS Server JavaScript API to create the end-user maps from the web services

What are the equivalent FOSS products?

share|improve this question
4  
Answers to this question might make a great series of blog entries :-). –  whuber Aug 7 '11 at 15:16
3  
I think a "How to get started with FOSS4G" article would be extremely useful. Most of the resources I've seen are written by experienced developers for experienced developers, without a high-level overview –  Stephen Lead Aug 8 '11 at 1:01
    
@whuber I agree, we also should promote the upcoming FOSS4G 2011 Conference. –  Kirk Kuykendall Aug 8 '11 at 15:14
    
@Kirk I view the prospect of promoting anything--conferences, software, whatever--as being outside the scope of this site and as being a destructive influence through potential conflict of interest (or the appearance thereof). A mechanism for promotion exists through advertising on the site, which is a matter between the conference organizers and SE. Notable and newsworthy events, however, have been publicized here. Maybe posting on our blog is the way to go... –  whuber Aug 8 '11 at 15:19
1  
@whuber, sorry, I should have elaborated. A series of blogs on FOSS could also promote FOSS4G conference. One reason I suggest this is to give equal time to what likely appeared to many as promotions for Esri conferences. –  Kirk Kuykendall Aug 8 '11 at 15:23
show 2 more comments

4 Answers

up vote 45 down vote accepted

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.

share|improve this answer
    
Nicklas, thank you very much - this really helps me to know where to get started –  Stephen Lead Aug 7 '11 at 23:19
    
@whuber, Thanks for making it readable :-) –  Nicklas Avén Aug 8 '11 at 17:23
1  
In my experience the only places of GIS activity where ESRI still indisputedly holds the high ground is cartography. I would love to see a combination of qgis and inkscape or scribus, and have had some success with a qgis+inkscape, but only with maps involving very few features and vertices (where "few" means in the thousands as opposes to tens or hundreds of thousands). A second area of preminence is cohesiveness. With arcgis, provided one has money, most everything is there. With floss one spends a lot of time on gluing things together. This is rapidly improving though, especially in qgis. –  matt wilkie Sep 12 '11 at 15:57
add comment
  • file geodatabase = PostGIS
  • ArcMap = QGIS with a PostGIS in Postgresgl backend
  • ArcGIS Server = Geo Server, Map Server, QGIS Server
  • ArcGIS Server JavaScript API to create the end-user maps from the web services = Open Layers with Mapfish.

The stack can be installed from the postgresql site with the stackinstaller.

Simplest solution is to install a LAPP stack with Postgresql, containing a Post GIS database and maybe a tomcat server that calls Apache, for the last part you would need a domain name or have your ISP support serving data to the web from your server.

Install QGIS for a nice GUI with decent application functionality and connect it to your Post GIS container. Works well without the apache and tomcat for intranets.

You would need to develop an application using the web root of the apche installation for serving over the internet unless you are cloud based.

To develop in a browser as a client that can be called in the browser is more developement intensive and requires something like Open Layers and or Mapfish. This is the least painful way and their are many other options and considerations as well.

For the desktop this works well, however, minus Mapfish and Open Layers.

Here is kind of what it looks like, logicaly. Post GIS > Postgresql > Geoserver > QGIS > Tomcat > Mapfish

share|improve this answer
add comment

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:

share|improve this answer
2  
the webgis.uster.ch example is excellent! –  Stephen Lead Aug 8 '11 at 4:23
2  
I especially like the printing functionality. –  underdark Aug 8 '11 at 10:18
add comment

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

  • file geodatabase or ArcSDE geodatabase for data storage

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)

  • ArcGIS Server to create web services

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

Modest Maps for the minimalist toolkit that you can do literally anything with or Leaflet if you want to avoid doing extra development.

share|improve this answer
    
cool, thanks for the tips. I'll check them all out –  Stephen Lead Aug 9 '11 at 23:21
add comment

Your Answer

 
discard

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.