3
# (c) 2008 Marcus Bauer
6
# Convert tangoGPS .csv logfiles into .osm files for processing in JOSM
8
# Usage: ./convert2osm.pl logfiles*.log
10
# creates for each input .log one .osm file
21
if($curr_arg ne $ARGV)
33
$filename = $ARGV . ".gpx";
34
print $filename . "\n";
35
open(FD, "> $filename");
47
#--------------------------------
48
# and the same for the last file:
49
#--------------------------------
57
#########################################################
61
#########################################################
71
<?xml version="1.0" encoding="UTF-8"?>
73
creator="convert2gpx.pl http://www.tangogps.org"
74
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
75
xmlns="http://www.topografix.com/GPX/1/0"
76
xsi:schemaLocation="http://www.topografix.com/GPX/1/0 http://www.topografix.com/GPX/1/0/gpx.xsd">
97
<trkpt lat="@arr[0]" lon="@arr[1]">
99
<speed>@arr[3]</speed>
100
<course>@arr[4]</course>
130
#=======================================================================
134
#=======================================================================
137
#---------------------------------------------------------------------
139
# MAIN SUB convert to .osm
141
#----------------------------------------------------------------------
146
# 1. simplify with gpsbabel
148
`gpsbabel -i gpx -f $filename -x simplify,error=0.001k -x discard,hdop=3.1 -o csv -F $filename.csv`;
152
# 2. convert .csv to .osm
164
# END MAIN SUB convert2osm
176
print "converting to osm...\n";
180
open(FDCSV,"$filename.csv") || die $filename.csv;
181
open(FDOSM,"> $filename.osm") || die $filename.osm;
206
print FDOSM "<?xml version='1.0' encoding='UTF-8'?>\n";
207
print FDOSM "<osm version='0.5' generator='JOSM'>\n";
220
@arr = split(',', $_);
224
print FDOSM "\t<node id='$i' visible='true' lat='$lat' lon='$lon' />\n";
236
print FDOSM "\t<way id='$way_id' action='modify' visible='true'>\n";
241
print FDOSM "\t\t<nd ref='$j' />\n";
254
print FDOSM "\t\t<tag k='highway' v='residential' /> \n";
255
print FDOSM "\t\t<tag k='name' v='nn' /> \n";
257
print FDOSM "\t</way> \n";
258
print FDOSM "</osm> \n";