I thought I would take a moment to run through the tools in my digital
toolbox that I use to develop GIS enabled web sites. I try to pick the
best of breed in each area rather than learn multiple tools that do the
same thing - life is short and there isn't enough time for me to do
that. I would be interested to read in the comments if anyone has
suggestions of better alternatives:
Operating system: `Debian`_ or`Ubuntu Server Edition`_. Really
don't run your web site on Windows, its just a silly waste of time and
money.
Web server - `Apache 2`_. It's a no brainer really, its fast, robust
and infinitely configurable while easy to get running in a default
configuration.
Programmers editor: `Vim`_ (or emacs if you prefer). Being able to
use the same editor on both local development machines and remote
servers is indispesible. Also if you hand write your html it tends to
have less gumpf clogging up the works compared to the Frontpage etc.
generated sites I have seen out there. If you must use a GUI editor
there are a few good choices under Linux, but VIM does it for me.
Web Application framework: `(Geo)Django`_. With its support for
spatial extensions, intuitive MVC architecture and wealth of 3rd party
add-ons, Django is a great choice for building your web applications
with Python.
Backend Database:`PostgreSQL/PostGIS`_. It does everything you
need including store geospatial data. Some people suggest SpatialLite
as an alternative, but thus far I have haven't used it in a production
system so I don't know what limitations, if any, it has.
Javascript Framework: `Jquery`_.I know there are some good
competitors but JQuery and JQuery-UI are so great I haven't felt a need
to go and discover their competitors. There are a huge number of add ons
for JQuery and plenty of helpful people out there if you get stuck.
CSS Framework: `Blueprint CSS`_. I think CSS frameworks are still a
relatively new concept. They take a lot of the pain out of layout and
make your site look good with minimal effort. Blueprint implements the
960 grid and the results are pretty much always pleasing on the eye.
CSS Compressor: http://www.csscompressor.com/. This web site
will take your CSS and squish it by removing comments, white space etc.
It typically makes my CSS files around 25% smaller.
Javascript Compressor: `Google Closure`_. This web service / web app
will squash your javascript down nice and small using a variety of
techniques. With simple optimisations, I typically get around 40%
reduction in code size. It also optimises your code for good measure.
They provide lots of detailed documentation to get you on your way.
Web Mapping Control: `OpenLayers`_.It's a bit of a no-brainer. I
haven't really looked that hard but is there anything that really
competes with it (other than the Google Maps API)?
Web Mapping Server: `UMN Mapserver`_. One day soon I am going to
replace this entry with QGIS' own mapserver implementation by Marco
Hugentobler, but for now Mapserver is the best thing since sliced bread
- it's a doddle to install, incredible flexible and you can generate
basic mapfiles using QGIS so it's easy to get started with. Also worth a
mention is Mapnik which can produce gorgeous maps.
Web Mapping Cache: `TileCache`_. I keep meaning to try out
MapProxy since it supports region delimitation using shapefiles
rather than bounding boxes - which can drastically reduce the size of
your seeded cache. But for now, TileCache is really easy to set up and
you should have it running in just a few minutes.
Did I leave anything out? If you take the above tools, software and web
services, you will have everything you need to produce some great web
mapping software.