I am completely new to GIS and therefore have questions regarding how the GIS Web development should be made, because the entire concept still confuses me.

So, imagine I have a map. And by this, i mean the shape files for the layers and so on.

How i should i use this in my web application?

I have read about MapServer, OpenLayers, PostGIS, but can't quite understand how and why this all enters the question.

If i have my map, my files, shouldn't the problem be just on to represent it in the web page?


4 Answers 4


A more complete list (the first answer mainly refer to OpenGeo stack, that is excellent, but there are plenty of other options out there):

User Interface

Map Services

Web Applications

Tile/Cache Services

Data Services

For vectorial datasets:

for raster datasets:

SDI Services

Note that this list only refer to Open Source software, otherwise we would need to add more software and tools (most notably ArcGIS Server and Oracle Spatial).


You have your shape files, which the web browsers cannot read if you put them on a server somewhere. A user could download them and view them in an application but that's not what you want.

So this is where GeoServer, MapServer, OpenLayers, PostGIS come into play.

You would use PostGIS to store the data in your shape file as it's a spatial database.

You would use GeoServer or MapServer to Expose that data in an OGC Standard way to represent your layers.

And finally you would use OpenLayers to display those layers however you want in a pretty map on the web.


This might help you visualize it: enter image description here

  • Aren't there ways to read the shape files directly? Like ThinkGeo or even GeoTools. What i don't understand is the difference between these two approaches. Why just not load the shape file?
    – seth
    Commented Mar 8, 2012 at 15:06
  • Yes if you didn't need or want a spatial database (postgis) then you could load the shape file directly to geoserver. However shapefiles have limitations and you didn't specify what you wanted to do as far as how large the project can become etc. So i gave you all options.
    – CaptDragon
    Commented Mar 8, 2012 at 15:10
  • 1
    for directly reading shapefile you have to use geodjango which is a python web library.with the help of this you can use Python Shapefile Library , Pyshp, Shapefile and more...
    – urcm
    Commented Mar 8, 2012 at 15:16
  • 4
    @Aragon "for directly reading shapefile you have to use geodjango" That's not true. There are many applications that read shape files.
    – CaptDragon
    Commented Mar 8, 2012 at 15:20
  • What are the limitations of shapefiles? And assuming i'd load the shapefile, do i need geoserver and openlayers after that?
    – seth
    Commented Mar 8, 2012 at 15:24

You could work though my course (though there's no credit I'm afraid). It provides a 9 step plan to get you up to speed on some of the concepts that you seem to be struggling with.


what i have understood from your que. is how can you spatialize your data? if you dont have any road map you can read Spatializing your Data with PostGIS, GeoDjango & OpenLayers

the tutorial contents contain following information which take from its web side:

This tutorial covers some of the most common Open Source GIS technologies available today – PostGIS, a set of spatial extensions to PostgreSQL; OSGeo’s OpenLayers, a client-side JavaScript map “mash-up” application; and GeoDjango, a set of Geospatial extensions to the Django framework. Using these technologies we will explain and implement a web application using municipal street, school, police, and property data from a typical US municipality (Wake County, NC).

Attendees will learn how to import and manage spatial data using GeoDjango, perform basic spatial queries using the GeoDjango database model, and develop and deploy web-based mapping services using OpenLayers.

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