20

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?

PolyGeo
  • 65,136
  • 29
  • 109
  • 338
seth
  • 311
  • 2
  • 7

4 Answers4

18

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).

capooti
  • 2,698
  • 21
  • 22
16

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.

Update:

This might help you visualize it: enter image description here

CaptDragon
  • 13,313
  • 6
  • 55
  • 96
  • 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 Mar 08 '12 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 Mar 08 '12 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 Mar 08 '12 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 Mar 08 '12 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 Mar 08 '12 at 15:24
  • you are right CaptDragon i should not use to "have to"... there are lots of applications for this. but python is good option in this area... – urcm Mar 08 '12 at 15:25
  • @seth : the main limitation being that it has a 2GB limit. But here are more. Well if you use GeoServer and OpenLayers you'd load the shapefile on to geoserver and have openlayers view them on the browser. But you migth want to rephrase your second question in the comment, it's confusing because where are we assuming we're loading the shapefile? You could always upload your shapefile to the cloud and take away GeoServer, now all you need is openlayers. But again, you have not specified what your goal is so i can give you options all day. – CaptDragon Mar 08 '12 at 15:30
  • But you had mentioned "MapServer, OpenLayers, PostGIS" in your question so i'm just trying to explain to you their roles in a typical GIS enterprise architecture. If you dont' want to use all the pieces, you don't have to. – CaptDragon Mar 08 '12 at 15:34
9

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.

Ian Turton
  • 81,417
  • 6
  • 84
  • 185
4

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.

urcm
  • 22,533
  • 4
  • 57
  • 109