User:Avena701/osm2gpx.py
Jump to navigation
Jump to search
#!/usr/bin/python from osmread import parse_file, Node import gpxpy import gpxpy.gpx import sys gpx = gpxpy.gpx.GPX() if len(sys.argv) != 3: print('Please call: python osm2gpx.px input.osm output.gpx') sys.exit() infn = sys.argv[1]; outfn = sys.argv[2]; for entity in parse_file(infn): if isinstance(entity, Node): lat = entity.lat lon = entity.lon if 'name' in entity.tags: name = entity.tags['name'] else: name = '' desc = '' for (tag, value) in entity.tags.items(): if tag != 'name': desc = '%s%s=%s\n' %(desc, tag, value) newGPXWaypoint = gpxpy.gpx.GPXWaypoint(lat, lon, name=name, description=desc) gpx.waypoints.append(newGPXWaypoint) else: print('Found way or relation: Please provide osm file with nodes only') fid = open(outfn, 'w') fid.write(gpx.to_xml()) fid.close()