Guidelines for GIS application development [closed]
Asked Answered
S

7

17

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 the development of such an application?

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

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

Frameworks: GeoDjango (if Python or Jython 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)

Spanker answered 28/6, 2009 at 7:44 Comment(2)
for completeness also see stackoverflow.com/questions/3180793/gis-for-the-web/… ;)Trachoma
You might post this question here: gis.stackexchange.comCryptogam
R
9

afaik: the best choice for a web applications is to prepare your data with gvSIG (http://www.gvsig.org), 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 approach is to use MapFish (http://trac.mapfish.org/trac/mapfish/wiki) a webgis framework that internally uses extjs and openlayers but simplify development.

Ritenuto answered 28/6, 2009 at 8:36 Comment(2)
another nice approach for .net development (but looks that it's not mandatory for you), is to use sharpmap (codeplex.com/SharpMap) to build an asp.net gis applications, and to publish your data with MsSqlServerSpatial (codeplex.com/MsSqlSpatial)Ritenuto
+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.Posterior
S
2

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.

Seawards answered 28/6, 2009 at 7:48 Comment(1)
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.Weighted
W
2

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.

Weighted answered 28/6, 2009 at 8:29 Comment(0)
K
2

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.

Korenblat answered 28/6, 2009 at 15:27 Comment(0)
C
0

It is difficult to answer your question for the "best" tools because this depends on your requirements. Specify your needs and we'll find more precise answer (As I see, you asked some time ago and I hope you already got your MSc)... nevertheless, there might be others still interested in this question.

Database:

For small size desktop applications Sqlite with SpatiaLite might be an Option instead of a complete PostgreSQL/PostGIS Server as backend. PostgreSQL is a good choice for larger applications or using it together with a WFS(-T)-Server like GeoServer or UMN MapServer.

Maybe the plain old Shapefile format does meet your requirements and you don't need a database backend.

Programming Language:

I suggest to use the language you are already familar with. There are many bindings to several languages available and I would bet your language is supported, too. If you start from zero to hero, I would suggest Java, because it is easy to learn and there are many well maintained open source Projects available.

Frameworks:

I can't suggest a single Framework, because they have all Special capabilties and advantages in specific fields... why should I suggest you a visualization toolkit if you only need something to convert file formats or coordinates without displaying them. I already mentioned that at the top of my answer. MapWindow6 and DotSpatial might be interesting if using C#.

ClientUI:

Desktop or/and Browser? OS? The possible technologies depends on your reqirements and environment. If you are stuck to use a browser (that can display WebGL) and you want to show some state of the art fx Cesium might be interesting.

Servers:

You already mentioned the most well-known open source servers, my favorite is the GeoServer.

Other hints

If you are searching a special technology stack the OGC Website is the first point to visit. They defined many (not to say all) known standards in the GIS field and provide a list of implementations for each standard.

Cryptogam answered 11/2, 2013 at 22:20 Comment(0)
E
0

I just wanted to mention CartoDB as well. I've used it for some time now and I think it's great. They have an online website with limitations for the free accounts, but it's open source and you can install your own instance. It's really flexible. You can store your data in their cloud PostGIS DB or your locally hosted one, then use JS libraries like CartoJS or Leaflet to connect to the DB and plot your data. You can create visualisation and just embed them in the HTML code.

This is their online site. And this is their repo with links to the instructions on how to set up your own CartoDB instance, if you prefer.

Ezarras answered 30/9, 2015 at 17:21 Comment(0)
C
0

On web map server side it's worth trying out free OSGeo MapGuide Open Source or it's commercial counterpart Autodesk Infrastructure Map Server.

Cralg answered 22/11, 2016 at 13:46 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.