Developing Geospatial Solutions using Open Source

From OSGeo
Jump to navigation Jump to search

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 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

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

Use case Description Perl Ruby Python
Parse GPX What is GPX? Perl based solution Ruby based solution PyGPX
GeoTag Media RDFWeb (original geoloc_media) Ruby? Python?
Track logs Geo::Track::Log Ruby Python


  • Problem: Convert between WGS84 and local projections
  • Problem: Convert from lat+long to easting and northing, as used on printed maps
Use case Description Perl Ruby Python
Change between projections MySociety Code
Convert from lat+long to easting+northing