Changes between Version 3 and Version 4 of Help/Plugin/Scripting/Python


Ignore:
Timestamp:
2011-09-13T02:26:48+02:00 (15 years ago)
Author:
Polyglot
Comment:

Examples of how to download data

Legend:

Unmodified
Added
Removed
Modified
  • Help/Plugin/Scripting/Python

    v3 v4  
    9999
    100100
    101 
    102 
     101Download missing parent elements for the selected element:
     102
     103
     104{{{
     105#!/bin/jython
     106'''
     107
     108This code is released under the GNU General
     109Public License v2 or later.
     110
     111The GPL v3 is accessible here:
     112http://www.gnu.org/licenses/gpl.html
     113
     114The GPL v2 is accessible here:
     115http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
     116
     117It comes with no warranty whatsoever.
     118
     119This code illustrates how to use Jython to:
     120* Download all referrer for an element
     121
     122'''
     123from javax.swing import JOptionPane
     124from org.openstreetmap.josm import Main
     125import org.openstreetmap.josm.data.osm.Node as Node
     126import org.openstreetmap.josm.data.osm.Way as Way
     127import org.openstreetmap.josm.data.osm.Relation as Relation
     128import org.openstreetmap.josm.data.osm.TagCollection as TagCollection
     129import org.openstreetmap.josm.data.osm.DataSet as DataSet
     130import org.openstreetmap.josm.data.osm.RelationMember as RelationMember
     131import org.openstreetmap.josm.actions.DownloadReferrersAction as DownloadReferrersAction
     132#import org.openstreetmap.josm.actions.downloadtasks.DownloadReferrersTask as DownloadReferrersTask;
     133
     134def getMapView():
     135    if Main.main and Main.main.map:
     136        return Main.main.map.mapView
     137    else:
     138        return None
     139
     140mv = getMapView()
     141if mv and mv.editLayer and mv.editLayer.data:
     142    selectedElements = mv.editLayer.data.getSelected()
     143   
     144    if not(selectedElements):
     145        JOptionPane.showMessageDialog(Main.parent, "Please select an element")
     146    else:
     147        DownloadReferrersAction.downloadReferrers(mv.editLayer, selectedElements)
     148}}}
     149
     150
     151Download missing relation members:
     152
     153
     154{{{
     155#!/bin/jython
     156'''
     157
     158This code is released under the GNU General
     159Public License v2 or later.
     160
     161The GPL v3 is accessible here:
     162http://www.gnu.org/licenses/gpl.html
     163
     164The GPL v2 is accessible here:
     165http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
     166
     167It comes with no warranty whatsoever.
     168
     169This code illustrates how to use Jython to:
     170* Download all missing members of a relation
     171
     172'''
     173from javax.swing import JOptionPane
     174from org.openstreetmap.josm import Main
     175import org.openstreetmap.josm.data.osm.Node as Node
     176import org.openstreetmap.josm.data.osm.Way as Way
     177import org.openstreetmap.josm.data.osm.Relation as Relation
     178import org.openstreetmap.josm.data.osm.TagCollection as TagCollection
     179import org.openstreetmap.josm.data.osm.DataSet as DataSet
     180import org.openstreetmap.josm.data.osm.RelationMember as RelationMember
     181import org.openstreetmap.josm.gui.dialogs.relation.DownloadRelationMemberTask as DownloadRelationMemberTask
     182
     183def getMapView():
     184    if Main.main and Main.main.map:
     185        return Main.main.map.mapView
     186    else:
     187        return None
     188
     189mv = getMapView()
     190if mv and mv.editLayer and mv.editLayer.data:
     191    selectedRelations = mv.editLayer.data.getSelectedRelations()
     192   
     193    if not(selectedRelations):
     194        JOptionPane.showMessageDialog(Main.parent, "Please select a node")
     195    else:
     196        for relation in selectedRelations:
     197            if relation.hasIncompleteMembers():
     198                #print dir(relation)
     199                print dir(DownloadRelationMemberTask)
     200                DownloadRelationMemberTask.run(DownloadRelationMemberTask(relation, relation.getIncompleteMembers(), mv.editLayer ))
     201}}}