<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-HuxFc9</id>
	<title>OSGeo - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osgeo.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Wiki-HuxFc9"/>
	<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/wiki/Special:Contributions/Wiki-HuxFc9"/>
	<updated>2026-04-11T21:33:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.35.9</generator>
	<entry>
		<id>https://wiki.osgeo.org/w/index.php?title=Developing_Geospatial_Solutions_using_Open_Source&amp;diff=13774</id>
		<title>Developing Geospatial Solutions using Open Source</title>
		<link rel="alternate" type="text/html" href="https://wiki.osgeo.org/w/index.php?title=Developing_Geospatial_Solutions_using_Open_Source&amp;diff=13774"/>
		<updated>2007-04-11T21:15:26Z</updated>

		<summary type="html">&lt;p&gt;Wiki-HuxFc9: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is one of the three books identified by the [[Education Committee Work Program|Education and Curriculum Committee]] that should be written. The other books are [[Using Open Source GIS]] and [[Developing Web Mapping Solutions Using Open Source]].&lt;br /&gt;
&lt;br /&gt;
== Approach for writing this book ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
The tools are [[Programming Languages Project|programming languages]], libraries, command line tools, and customizable applications.&lt;br /&gt;
&lt;br /&gt;
This book is about &amp;quot;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&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
We exclude web mapping problems from this one since it is the topic of book 3.&lt;br /&gt;
&lt;br /&gt;
Provide here an analysis of the meta problem description above.&lt;br /&gt;
&lt;br /&gt;
Copy the categories and &lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
== GPS related ==&lt;br /&gt;
&lt;br /&gt;
*Problem: Share GPS data between applications&lt;br /&gt;
**Subproblem: Parse GPX&lt;br /&gt;
**Explanation: GPX is an XML application for GPS data. Parsing gives us the GPS data.&lt;br /&gt;
&lt;br /&gt;
*Problem:&lt;br /&gt;
**Subproblem: GeoTag Media&lt;br /&gt;
**Explanation:&lt;br /&gt;
&lt;br /&gt;
*Problem:&lt;br /&gt;
**Subproblem: Track logs&lt;br /&gt;
**Explanation:&lt;br /&gt;
&lt;br /&gt;
*Problem: Edit a GPS track&lt;br /&gt;
**[http://users.skynet.be/watermael/gps/50358.html#to_Moissac example data]&lt;br /&gt;
**Requirements: Show the track on a map as editable lines, show the coordinates on a spreadsheet allowing edits, link the two representations&lt;br /&gt;
**Subproblem: Import the GPS track to the editor&lt;br /&gt;
**Subproblem: Export the track from the system&lt;br /&gt;
&lt;br /&gt;
*Problem: Merge GPS tracks&lt;br /&gt;
**Explanation: Allow you to view several GPS traces, delete certain points, and average others together.&lt;br /&gt;
**Use: You survey a route several times, and want a single trace of the best average over the traces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
| Use case || Description || Perl || Ruby || Python || Shell &lt;br /&gt;
|-&lt;br /&gt;
| Parse GPX &lt;br /&gt;
| [http://www.topografix.com/gpx.asp What is GPX?] &lt;br /&gt;
| [http://search.cpan.org/~rbow/Geo-Cache/lib/Geo/Gpx.pm Perl based solution]&lt;br /&gt;
| [http://www.tom-carden.co.uk/googlegpx/upload-gpx Ruby based solution]&lt;br /&gt;
| [http://cheeseshop.python.org/pypi/pygpx/ PyGPX]&lt;br /&gt;
| [http://mpa.itc.it/markus/useful/shp2gpx.sh shp2gpx.sh] and [http://mpa.itc.it/markus/useful/gpx2shp.sh gpx2shp.sh](scripts calling 'gpsbabel')&lt;br /&gt;
|-&lt;br /&gt;
| GeoTag Media&lt;br /&gt;
| &lt;br /&gt;
| [http://rdfweb.org/people/danbri/media/bin/geoloc_media.pl RDFWeb geoloc_media.pl] ([http://locative.us/photomap/geoloc_media.pl  original geoloc_media])&lt;br /&gt;
| Ruby?&lt;br /&gt;
| Python?&lt;br /&gt;
| Shell?&lt;br /&gt;
|-&lt;br /&gt;
| Track logs&lt;br /&gt;
| &lt;br /&gt;
| [http://search.cpan.org/~rgibson/Geo-Track-Log-0.02/lib/Geo/Track/Log.pm Geo::Track::Log]&lt;br /&gt;
| Ruby&lt;br /&gt;
| Python&lt;br /&gt;
| Shell?&lt;br /&gt;
|-&lt;br /&gt;
| Track merge&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| Ruby?&lt;br /&gt;
| Python?&lt;br /&gt;
| gpsbabel can perform related [http://www.gpsbabel.org/htmldoc-1.3.0/Data_Filters.html GPS track operations]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Projection-Conversion ==&lt;br /&gt;
* Problem: Convert between WGS84 and local projections&lt;br /&gt;
* Problem: Convert from lat long to easting and northing, as used on printed maps&lt;br /&gt;
&lt;br /&gt;
Check out the [[Axis Order Confusion]] issue which arises whenever adressing geographic coordinates with IT systems. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
| Use case || Description || Perl || Ruby || Python || Java || JavaScript || Shell&lt;br /&gt;
|-&lt;br /&gt;
| Change between projections &lt;br /&gt;
| Perform a Helmert Transform&lt;br /&gt;
| [https://secure.mysociety.org/cvstrac/dir?d=mysociety/perllib/Geo MySociety Code]&lt;br /&gt;
| &lt;br /&gt;
| [http://gagravarr.org/code/#geo_helper geo_helper.py]&lt;br /&gt;
| [http://www.jstott.me.uk/jcoord/ Jcoord]&lt;br /&gt;
| [http://www.jstott.me.uk/jscoord/ JScoord]&lt;br /&gt;
| [http://proj.maptools.org/ cs2cs tool]&lt;br /&gt;
|-&lt;br /&gt;
| Convert from lat long to easting northing&lt;br /&gt;
|&lt;br /&gt;
| [http://search.cpan.org/~toby/Geo-Coordinates-OSGB-1.07/lib/Geo/Coordinates/OSGB.pm Geo::Coordinates::OSGB]&lt;br /&gt;
|&lt;br /&gt;
| [http://gagravarr.org/code/#geo_helper geo_helper.py]&lt;br /&gt;
| [http://www.jstott.me.uk/jcoord/ Jcoord]&lt;br /&gt;
| [http://www.jstott.me.uk/jscoord/ JScoord]&lt;br /&gt;
| [http://proj.maptools.org/ cs2cs tool]&lt;br /&gt;
|-&lt;br /&gt;
| Work with old maps / data in Cassini Projection&lt;br /&gt;
| Convert between Cassini and its base elipsoid&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://gagravarr.org/code/#geo_helper geo_helper.py]&lt;br /&gt;
|&lt;br /&gt;
| [http://www.ponies.me.uk/maps/cassini/ cassini-coord.js]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== GPS and EXIF ==&lt;br /&gt;
* Problem: Extract GPS exif tags from photos&lt;br /&gt;
* Problem: Add GPS exif tags at the time a photo is taken&lt;br /&gt;
* Problem: Add GPS exit tags to photos, based on the time they were taken and a GPS track&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot;&lt;br /&gt;
| Use case || Description || Perl || Ruby || Python &lt;br /&gt;
|-&lt;br /&gt;
| Get GPS EXIF data&lt;br /&gt;
| Extract lat and long from GPS Exif tags&lt;br /&gt;
| &lt;br /&gt;
| &lt;br /&gt;
| [http://www.benno.id.au/code/pexif/ pexif]&lt;br /&gt;
|-&lt;br /&gt;
| Set GPS EXIF date&lt;br /&gt;
| Add lat and long GPS Exif tags&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
| [http://www.benno.id.au/code/pexif/ pexif]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Wiki-HuxFc9</name></author>
	</entry>
</feed>