Developing Geospatial Solutions using Open Source

This is one of the three books identified by the Education and Curriculum Committee that should be written. The other books are Using Open Source GIS and Developing Web Mapping Solutions Using Open Source.
== Approach for writing this book ==
Using the application and programming language categories from http://freegis.org we'll gather problems or use cases, maybe divide them into subproblems, and describe how they can be solved using the free tools.
The tools are programming languages, libraries, command line tools, and customizable applications.
This book is about "I know which problem I need to solve and it can't be solved, at least easily or without trouble, by simply using some free GIS tool".
We exclude web mapping problems from this one since it is the topic of book 3.
Provide here an analysis of the meta problem description above.
Copy the categories and 
programming languages: C, C , Java, Python, Tcl/Tk, Perl, (Visual) Basic, PHP, C#, Fortran, Delphi, Ruby, SWF, Other (Other has zero entries in freegis.org).
== GPS related ==
*Problem: Share GPS data between applications
**Subproblem: Parse GPX
**Explanation: GPX is an XML application for GPS data. Parsing gives us the GPS data.
*Problem:
**Subproblem: GeoTag Media
**Explanation:
*Problem:
**Subproblem: Track logs
**Explanation:
*Problem: Edit a GPS track
**example data
**Requirements: Show the track on a map as editable lines, show the coordinates on a spreadsheet allowing edits, link the two representations
**Subproblem: Import the GPS track to the editor
**Subproblem: Export the track from the system
*Problem: Merge GPS tracks
**Explanation: Allow you to view several GPS traces, delete certain points, and average others together.
**Use: You survey a route several times, and want a single trace of the best average over the traces
Use case 	Description 	Perl 	Ruby 	Python 	Shell
Parse GPX 	What is GPX?	Perl based solution 	Ruby based solution	PyGPX 	shp2gpx.sh and gpx2shp.sh(scripts calling 'gpsbabel')
GeoTag Media	 	RDFWeb geoloc_media.pl ( original geoloc_media)	Ruby? 	Python?	Shell?
Track logs 	 	Geo::Track::Log 	Ruby 	Python 	Shell?
Track merge 	 	 	Ruby? 	Python?	gpsbabel can perform related GPS track operations
== Projection-Conversion ==
* Problem: Convert between WGS84 and local projections
* Problem: Convert from lat long to easting and northing, as used on printed maps
Check out the Axis Order Confusion issue which arises whenever adressing geographic coordinates with IT systems. 
Use case 	Description 	Perl 	Ruby	Python 	Java 	JavaScript 	Shell
Change between projections 	Perform a Helmert Transform 	MySociety Code 	 	geo_helper.py	Jcoord	JScoord 	cs2cs tool
Convert from lat long to easting northing 	 	Geo::Coordinates::OSGB	 	geo_helper.py	Jcoord	JScoord 	cs2cs tool
Work with old maps / data in Cassini Projection	Convert between Cassini and its base elipsoid	 	 	geo_helper.py	 	cassini-coord.js	
== GPS and EXIF ==
* Problem: Extract GPS exif tags from photos
* Problem: Add GPS exif tags at the time a photo is taken
* Problem: Add GPS exit tags to photos, based on the time they were taken and a GPS track
Use case 	Description 	Perl	Ruby	Python
Get GPS EXIF data	Extract lat and long from GPS Exif tags	 	 	pexif
Set GPS EXIF date	Add lat and long GPS Exif tags 	 	 	pexif
Category:Education