Summary

In this chapter, we have surveyed the geo-spatial web development landscape, examining the major concepts behind geo-spatial web application development, some of the main open protocols used by geo-spatial web applications, and a number of Python-based tools for implementing geo-spatial applications that run over the Internet.

We have seen:

  • That a web application stack allows you to build complex, but highly structured web applications using off-the-shelf components.
  • That a web application framework supports rapid development of web-based applications, providing a "batteries included" or "full stack" development experience.
  • That web services make functionality available to other software components via an HTTP-based API.
  • That a map renderer such as Mapnik can be used to build a web service that provides map-rendering services to other parts of a web application.
  • That tile caching dramatically improves the performance of a web application by holding previously-generated map tiles, and only generating new tiles as they are needed.
  • That tile caching is often used to provide a base map onto which your own geo-spatial data is displayed using overlays.
  • That web servers provide the interface between your web application and the outside world.
  • That a user-interface library, generally using AJAX technology, runs in the user's web browser and provides a sophisticated user interface not possible with traditional HTML web pages.
  • That the slippy map, popularized by Google Maps, is the ubiquitous interface for viewing and manipulating geo-spatial data.
  • That slippy maps are generally implemented using a custom application stack that combines map data, a renderer, a tile cache, and a UI library, all sitting behind a web server.
  • That complete geo-spatial web application stacks, developed using web application frameworks, can implement sophisticated geo-spatial features, including data manipulation, searching, and analysis with far less development effort than would be required using a "roll your own" solution.
  • That geo-spatial web protocols allow different components to communicate in a standard way.
  • That the Web Map Service (WMS) is an XML-based protocol for generating map images on demand.
  • That the WMS-C protocol is a suggested extension to WMS suited to the generation of map tiles.
  • That the Web Feature Service (WFS) protocol allows for querying, retrieving, and updating geo-spatial data using a web-based API.
  • That the Tile Map Service (TMS) is a simpler, RESTful protocol for retrieving map tiles without having to use XML or deal with the complexity of the WMS protocol.
  • That TileCache is a Python-based tile caching system supporting both the TMS and WMS-C protocols.
  • That mod_tile is an Apache module for caching map tiles, using a custom interface protocol and rendering tiles using Mapnik.
  • That TileLite is a lightweight tile server, written in Python, that is designed to be a fast, easy-to-use, and flexible alternative to mod_tile.
  • That existing general-purpose user interface libraries such as Dojo, script.aculo.us, Rico, and YUI can all be used in geo-spatial applications to implement the non-spatial portions of the user interface.
  • The OpenLayers is a major JavaScript library for implementing slippy maps, allowing the user to view and edit geo-spatial data.
  • That Mapiator is a simpler JavaScript library implementing a slippy map interface for viewing, but not editing, geo-spatial data.
  • That GeoDjango is a powerful extension to the popular Django web application framework that provides a complete geo-spatial web application development environment, including an automatically-generated admin interface for viewing and editing geo-spatial data.
  • That MapFish is an extension to the Pylons web application framework, making it possible to build complex geo-spatial web applications on top of Pylons.
  • That the tgext.geo extension to TurboGears supports geo-spatial web application development by integrating OpenLayers, MapFish, and TileCache, as well as supporting an object-relational mapper for geo-spatial data and a WMS-compatible feature server, all within the TurboGears framework.

In the next chapter, we will start to build a complete mapping application using PostGIS, Mapnik, and GeoDjango.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.128.200.220