help me chpose a open source GIS that support PostGIS

I want to create a map for my school. I dont have enough money to buy a desktop GIS, open source gis is my choice. But i dont know which is the best. Please recommend me the one you know.
Thank you.
Who is Participating?
ericjarviesConnect With a Mentor Commented:

If you want to create a map, then here is some useful advice:
1. POIs(Points Of Interest) are little place pins or markers or point maps that denote one dot/location on the map.  In the case of a point map or POI, the dot on the map would be represented by two numbers, or coordinates, one for Latitude and one for Longitude.  These coordinates may be displayed in various forms/formats, like metric, degrees, etc.
2. Paths are 2 or more points connected together with a line, and often represent roads, ruler measurements, etc.  In the case of a Path map, each Point would have it's corresponding coordinates, thus, a Path map may have one path with two points, hence two coordinates(point 1:lat/long, and point 2: lat/long).  If the Path map has multiple/several/hundreds/thousands of individual paths, then each path, and it's respective number of points, would have it's respective set of coordinates(lat/long per connecting point).
3. Polygons are 3 or more points connected together with lines that represent a closed shape, like a triangle(3 points), or with more points can represent rectangles, circles, and any other shape that denotes a closed space, and represents an area.   Properties(like Lots or Parcels) and floor plans(like a home or building/structure) are a good example of the use of polygons.  Just like Paths, Polygon maps may have just one polygon, or thousands of polygons per map, in which case each polygon and it's respective number of points is represented by their respective coordinates(lat/long), so in the case of a simple rectangle, there ould only be 4 points, hence only 4 coordinates(lat/long x 4, or for each point).

All of the above maps are VECTOR based, meaning they can scale to any scale and resolution, so you can change their line color and width and their fill color and texture, and zoom in and out as much as you like, and they will never lose resolution or degrade in any way.  These are the raw editable files, and these VECTOR maps may be output/rendered in the form of RASTER maps, like a BMP, or JPG, or PNG image, in which case these RASTER renderings/saved image files, are then subject to image degradation when zooming in/out.  Thus, it is best ot use VECTOR whenever possible.

If you want your map to have satellite or aerial images as backgrounds(like Google Maps satellite view), then you can locate open source or publicly available RASTER libraries, or online web servers that provide these in the form of WMS maps/layers.  You can even use Google Maps satellite images if you do a map layer mash-up, which involves using a client application(like uDig) that allows you to mix and match local files and remote files, both VECTOR and RASTER.  However, this also requires a server stack, such as using MapServer and/or GeoServer(Same type of software, different projects), and OpenLayers(does the mash-up with Google, Yahoo, OpenStreetMaps, Microsoft Virtual Earth, etc. online maps).

For the desktop, you may choose from uDig, QGIS, MapWindow, OpenJump, and a few others.  MapWindow is Windows only, whereas the others will work across Unix, Linux, OS X, and Windows platforms.  I would suggest you start out with uDig, because it's simple and it will allow you to drag and drop existing VECTOR and RASTER sources onto the layer stack, and will auto-set the map's individual projections.  Speaking of which, maps from various sources will likely have their own Projection, like WGS 84, or NAD 83, for example(to name only a couple out of the possible hundreds that exist).  These Projections are what allows you to view the maps in flat view, for an otherwise round world.  You cna do a search for map projections, and learn about the various types... all of them essentially take a round coverage ,and open it up so it's flat like a piece of paper, which is why projections exist, so round maps can be viewed on flat pieces of paper, taking advantage of all the space on a page of paper, and allow each area to be represented in as square a design as is possible, instead of having the tops and bottoms of the maps pinched to their north and south poles(perhaps an overly simplified and lame example, but go with it).

These client applications allow you to load maps in the SHAPEFILE format, likely the most common file format for map files.  They also allow you to load maps that are stored in geo-enabled databases like PostgreSQL and MySQL and Oracle, wherein the tables/fields of data in those databases are displayed as vector map elements in the map view/window.  You can also use simple, non geo-enabled data sources like a normal MySQL database, or a CSV file for that matter, that has lat, long, and name fields, each row/record representing a POI of some place or point of reference.  For example, let's say I went into Google Earth and started creating place marks over top every location that I know to be a Hotel.  I could output that KML file, use a converter utility, convert it to CSV, and then import it into one of the above applications.  Or, in some of the applications, you can import the KML file directly.  You can also export to KML/CSV, etc.  Again, there are many many types of maps and file formats/data sources, so mixing and matching, and importing/exporting to any respective format is pretty much possible today.

The easiest way for you to make a map would be using Google Earth.  It allows Point, Path, and Polygon elements to be created.  It allows you to create individual folders, with which you can organize hierarchically all of your Point, Path and Polygon records.  Additionally, it allows you to add text, images, video, and music/audio to any of the records, and it also allow you to extract any of the 2D elements into extruded 3D elements, thus you can easily create 2D maps and 2D maps.  You can save these in the KML or KMZ format, and can use any of the dozens of conversion utilities available to convert to another format, or use any one of the many desktop GIS applications to import directly as a map layer, amongst many other possible map layers in your layer stack... having the capability of turning on and off specific layers or layer sets.  If you find that Google Earth is not powerful enough, or is lacking a specific functionality, then do what the rest of us do... mix and match your GIS applications, using specific applications for specific purposes, and settling into using a couple of them as your primary viewing application, which can be shared with others so they too can view the maps.

If you want to create maps that multiple people can work on at the same time, for example; 1 person is creating POIs of hotels in the downtown area.  A second person is creating main Avenues of a downtown area.  A third person is creating Parcels of land divisions for the downtown area.  In this case, each user would have their own layer, and each of these 3 layers would make up the map as a whole.  You could each save your layer as a shapefile set(shapefile are made up of a minimum of 3 actual files... name.shp, name.dbf, and name.shx. The file name for all 3 much be the same, e.g.-, and then email it to the other 2 people each time you have updated it, and the other 2 people would do the same, thus everyone would be updating the others with their respective layer/work.  Each person would be able to view the 3 layers and see the map as a whole.  Or, a more efficient model is to use a central database/server, like PostgreSQL, wherein the database has 3 tables, one for each map layer, and each person has the remote server address loaded into their map application as a remote map layer.  The users would edit their respective layer, and the other users would receive these updates in near real time, or when they refresh their local map layer/view.    Thus, each person could keep up with the progress of the other 2 people, always having the most current map layer, and none of them ever having to mess with saving as/exporting their layer ,and emailing it to the other 2 people.  Also, each person can also make edits to the other 2 people's map layers, so in effect, each person can edit/work on all 3 map layers.

If you want to get fancy, and add realtime data layers to your maps, perhaps like a GPS device installed into a vehicle, wherein it is using a GSM cellular SIM card to connect to the provider's data plan, and to send it's coordinates to your server.  These coordinates could be sent to your PostgreSQL server, saving into a 4th table called GPS for example, and so, you would have the first 3 map layers as described above, plus a fourth map layer that is being edited/added to by a vehicle mounted GPS hardware device, that is programmed to communicate with your PostgreSQL server, providing it with coordinates that are spaced every 'x' second or every 'x' meters/miles.  Then, the GPS device could store this data in it's memory, and perhaps every hour it could connect to your PostgreSQL server, and upload the last hour's worth of coordinates into the GPS table.  This would mean the 3 of you would each have the same map set loaded in your desktop application(like uDig), and each of you would have 4 layers loaded into your map project, 3 of the layers would be edited by each of the 3 people, and the fourth layer would be edited by the GPS device.  In all cases, all of you would always have the same, updated data in each of your desktop GIS client applications, which are all connected to one single remote PostgreSQL server, which is storing/maintaining the centralized information, thus eliminating redundant copies, the need to export/import and email/ftp, and have potential conflicts in data as it relates to what records are the most current/updated ,and by whom they were updated.

One final note... it is important to remember, that even though desktop GIS applications look a lot like a Photoshop, or other layer-based application, the map layers that are loaded must ALL move at once/together.  Meaning, you will not be able to move one map layer over to the left a few inches, like you would be able to do a layer in photoshop, as a means of aligning various layers to the other layers.  In a GIS application, each layer is tied down to, and must respect, the overall projection of the map layer itself, and the map project itself.  So, if you need to move some of the hotel POIs to the left a few inches(or in GIS terms, a few meters or degrees/minutes/seconds), you will need to select the actual Point records, and move the actual elements themselves.  Again, all the map layers are confined to their projection settings, and each of the Point, Path, and Polygon elements and all their respective POINTS have COORDINATES(lat/long for example), and so it's these coordinates that much be moved/changed... whilst the map layer/project layer projection remains constant/the same.  If this does not make sense now, it will once you roll up your sleeves and get your hands wet.

Ok, I hope this help you, and if it does, please click the button saying so!  :)


Eric Jarvies
Cabo San Lucas, Baja California Sur, Mexico

try these two and select a best one these two are open source softwares
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.