tags:

views:

948

answers:

4

Hi, i need some help! I'm supposed to create a GIS application for my MSc, and I was wondering what are the best free and (preferably) open source technologies for development. What programming language to use for development of such application.

Known choices are: Database: PostgreSQL (PostGIS) (suggest other)

Programming Language: PHP, Python, Java, ... (suggest other)

Frameworks: GeoDjango (if Python or Juthon is used), (suggest other)

Client UI: JavaScript (OpenLayers), Flex, (suggest other)

Servers: Mapserver, Geoserver, Mapfish, (suggest other)

Other Considerations: Hibernate Spatial, support for mobile GIS, (suggest other)

+1  A: 

Is is possible for you to embed Google Maps into a web application? This would be the simplest solution...

For open source GIS, see Wikipedia's list of open source GIS, it's quite complete.

Pasting from Wikipedia:

The development of open source GIS software has - in terms of software history - a long tradition with the appearance of a first system in 1978. Numerous systems are nowadays available which cover all sectors of geospatial data handling.

The following open source desktop GIS projects are reviewed in Steiniger and Bocher (2008/9):

gvSIG 1.0

GRASS GIS – Originally developed by the U.S. Army Corps of Engineers, open source: a complete GIS

SAGA GIS – System for Automated Geoscientific Analyses- a hybrid GIS software. SAGA has a unique Application Programming Interface (API) and a fast growing set of geoscientifc methods, bundled in exchangeable Module Libraries.

Quantum GIS – QGIS is a user friendly Open Source GIS that runs on Linux, Unix, Mac OS X, and Windows.

MapWindow GIS – Free, open source GIS desktop application and programming component.

ILWIS – ILWIS (Integrated Land and Water Information System) integrates image, vector and thematic data.

uDig

gvSIG – Open source GIS written in Java.

JUMP GIS / OpenJUMP – (Open) Java Unified Mapping Platform (the desktop GIS OpenJUMP, SkyJUMP, deeJUMP and Kosmo emerged from JUMP; see [3])

other:

Capaware rc1 0.1

SAGA-GIS v. 2.0.3

Kalypso (software) – Kalypso is an Open Source GIS (Java, GML3) and focuses mainly on numerical simulations in water management.

TerraView – GIS desktop that handles vector and raster data stored in a relational or geo-relational database, i.e. a frontend for TerraLib.

Capaware – Capaware is also an Open Source GIS, an incredible fast C++ 3D GIS Framework with a multiple plugin architecture for geographic graphical analysis and visualisation.

Roee Adler
Even if the question didn't explicitly state it, I think dear unknown here wants to build a web GIS application, which the alternatives you mention do not cover.
Vinko Vrsalovic
+1  A: 

I, some years (6 or so) ago, worked almost exclusively with MapServer (in particular PHP MapScript) and PostGIS, getting fairly good results, especially on the flexibility department. I made production apps (geolocation with analysis) and I even did my MSc thesis based on that work. I'd expect these two, given their maturity, are still a good choice.

Back then there weren't many alternatives to build rich web based internet GIS applications, nowadays there are quite a few (especially since Google Maps went live).

I've since gotten a few GIS related gigs, where one used Cartoweb for display, which is a PHP-Mapscript based web framework which is extensible and mostly works.

The best choice ultimately depends on what are you going to build. If you want full flexibility over analysis display, maps display, routing and geographical editing, then you have to get a programmable mapserver. I know Mapserver works, but it is very likely GeoServer and MapBuilder and even Mapnik could work, depending on the specifics.

BTW, about alternatives, MySQL also has Spatial Extensions.

Vinko Vrsalovic
+5  A: 

afaik: the best choice for a web applications is to prepare your data with gvSIG (http://www.gvsig.gva.es/), host your data into postgresql/postgis (http://www.postgresql.org,http://postgis.refractions.net), publish a WMS/WFS service(s) with MapServer (http://mapserver.org/) and then show your data using openlayers (http://openlayers.org). This solutions works perfectly for my experiences. A nice appriach is to use MapFish (http://trac.mapfish.org/trac/mapfish/wiki) a webgis framework that internally uses extjs and openlayers but simplify development.

D_Guidi
another nice approach for .net development (but looks that it's not mandatory for you), is to use sharpmap (http://www.codeplex.com/SharpMap) to build an asp.net gis applications, and to publish your data with MsSqlServerSpatial (http://www.codeplex.com/MsSqlSpatial)
D_Guidi
+1 for MapServer + WMS + OpenLayers. If you want it to be quick then also use TileCache. Also pretty much all databases can now support spatial types, and MapServer supports most databases, so go with whichever you know (or want to know) best.
geographika
+1  A: 

For something that feels more like an "application" than a web page with a map in it, check out http://geoext.org/ , which combines OpenLayers with ExtJS.

David Winslow