Something went wrong, so here is the code:<br><br><blockquote style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;" class="gmail_quote">#!/bin/jython<br>'''<br>RWN2Garmin.py  - Numbered networks to Garmin GPX file converter<br>
This code is released under the GNU General<br>Public License v2 or later.<br><br>The GPL v3 is accessible here:<br><a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a><br><br>The GPL v2 is accessible here:<br>
<a href="http://www.gnu.org/licenses/old-licenses/gpl-2.0.html">http://www.gnu.org/licenses/old-licenses/gpl-2.0.html</a><br><br>It comes with no warranty whatsoever.<br><br>This code illustrates how to use Jython to:<br>
* work with selected items or how to process all the primitives of a certain kind (node, way, relation)<br><br>'''<br>from javax.swing import JOptionPane, JDialog<br>from java.awt.event import ActionListener, ActionEvent<br>
from org.openstreetmap.josm import Main<br>import org.openstreetmap.josm.command as Command<br>import org.openstreetmap.josm.data.osm.Node as Node<br>import org.openstreetmap.josm.data.osm.Way as Way<br>import org.openstreetmap.josm.data.osm.TagCollection as TagCollection<br>
import org.openstreetmap.josm.data.osm.DataSet as DataSet<br>import time<br><br>def getMapView():<br>    if Main.main and Main.main.map:<br>        return Main.main.map.mapView<br>    else:<br>        return None<br><br>mv = getMapView()<br>
f = open('C:/export.gpx', 'w')<br>f.write('<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n')<br>f.write('<gpx xmlns="<a href="http://www.topografix.com/GPX/1/1">http://www.topografix.com/GPX/1/1</a>" creator="OSM Route Manager" version="1.1" xmlns:xsi="<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>" xsi:schemaLocation="<a href="http://www.topografix.com/GPX/1/1">http://www.topografix.com/GPX/1/1</a> <a href="http://www.topografix.com/GPX/1/1/gpx.xsd">http://www.topografix.com/GPX/1/1/gpx.xsd</a>">\n')<br>
f.write('<!-- All data by OpenStreetMap, licensed under cc-by-sa-2.0 (<a href="http://creativecommons.org/licenses/by-sa/2.0/">http://creativecommons.org/licenses/by-sa/2.0/</a>). -->\n')<br>if mv and mv.editLayer and mv.editLayer.data:<br>
    #selectedNodes = mv.editLayer.data.getSelectedNodes()<br>    #selectedWays = mv.editLayer.data.getSelectedWays()<br>    selectedRelations = mv.editLayer.data.getSelectedRelations()<br><br>    if not(selectedRelations):<br>
        JOptionPane.showMessageDialog(Main.parent, "Please select a collection relation")<br>    else:<br>        # nodetype = Node().getType()<br>        print<br>        for collection in selectedRelations:<br>
            print 'COLLECTION:', collection<br>            for member in collection.getMembers():<br>                print 'MEMBER:',member<br>                if member.isNode():<br>                    node = member.getNode()<br>
                    coords = node.getCoor()<br>                    lon = coords.getX()<br>                    lat = coords.getY()<br>                    rwn_ref = node.get('rwn_ref')<br>                    f.write('\t<wpt lat="' + str(lat) + '" lon="' + str(lon) + '">\n')<br>
                    if rwn_ref:<br>                        f.write('\t\t<name>' + rwn_ref + '</name>\n')<br>                    f.write('\t</wpt>\n')<br>            for member in collection.getMembers():<br>
                if member.isRelation():<br>                    routerelation = member.getRelation()<br>                    f.write('\t<trk>\n')<br>                    networkname =  routerelation.get('network:name')<br>
                    if not(networkname): networkname =  ''<br>                    note = routerelation.get('note')<br>                    if not(note): note =  ''<br>                    f.write('\t\t<name>' + networkname + ' ' + note + '</name>\n')<br>
                    f.write('\t\t<src>OpenStreetMap.org</src>\n')<br>                    f.write('\t\t<type>foot</type>\n')<br>                    for routerelmember in routerelation.getMembers():<br>
                        if routerelmember.isWay():<br>                            f.write('\t\t<trkseg>\n')<br>                            way=routerelmember.getWay()<br>                            for waynode in way.getNodes():<br>
                                 coords = waynode.getCoor()<br>                                 lon = coords.getX()<br>                                 lat = coords.getY()<br>                                 f.write('\t\t\t<trkpt lat=' + str(lat) + '" lon="' + str(lon) + '"> </trkpt>\n')<br>
<br>                            f.write('\t\t</trkseg>\n')<br>                    f.write('\t</trk>\n')<br>f.write('</gpx>\n')<br>f.close()<br></blockquote><div style="visibility: hidden; left: -5000px; position: absolute; z-index: 9999; padding: 0px; margin-left: 0px; margin-top: 0px; overflow: hidden; word-wrap: break-word; color: black; font-size: 10px; text-align: left; line-height: 130%;" id="avg_ls_inline_popup">
</div>