Ticket #15408: perf-v2.patch

File perf-v2.patch, 5.2 KB (added by GerdP, 8 years ago)

plugin needs JOSM r12643 or newer

  • plugins/download_along/build.xml

     
    33    <!-- enter the SVN commit message -->
    44    <property name="commit.message" value="Changed the constructor signature of the plugin main class"/>
    55    <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
    6     <property name="plugin.main.version" value="10657"/>
     6    <property name="plugin.main.version" value="12643"/>
    77
    88        <!-- Configure these properties (replace "..." accordingly).
    99         See https://josm.openstreetmap.de/wiki/DevelopersGuide/DevelopingPlugins
  • plugins/download_along/src/org/openstreetmap/josm/plugin/download_along/DownloadAlong.java

     
    11// License: GPL. For details, see LICENSE file.
    22package org.openstreetmap.josm.plugin.download_along;
    33
    4 import org.openstreetmap.josm.Main;
     4import org.openstreetmap.josm.gui.MainApplication;
    55import org.openstreetmap.josm.gui.MainMenu;
    66import org.openstreetmap.josm.plugins.Plugin;
    77import org.openstreetmap.josm.plugins.PluginInformation;
     
    1010
    1111    public DownloadAlong(PluginInformation info) {
    1212        super(info);
    13         MainMenu.add(Main.main.menu.moreToolsMenu, new DownloadAlongWayAction());
     13        MainMenu.add(MainApplication.getMenu().moreToolsMenu, new DownloadAlongWayAction());
    1414    }
    1515}
  • plugins/download_along/src/org/openstreetmap/josm/plugin/download_along/DownloadAlongWayAction.java

     
    66import java.awt.event.ActionEvent;
    77import java.awt.event.KeyEvent;
    88import java.awt.geom.Area;
     9import java.awt.geom.Path2D;
    910import java.awt.geom.Rectangle2D;
    1011import java.util.ArrayList;
    1112import java.util.Collection;
     
    2223import org.openstreetmap.josm.gui.help.HelpUtil;
    2324import org.openstreetmap.josm.gui.layer.gpx.DownloadAlongPanel;
    2425import org.openstreetmap.josm.gui.progress.NullProgressMonitor;
     26import org.openstreetmap.josm.tools.Logging;
    2527import org.openstreetmap.josm.tools.Shortcut;
    2628
    2729class DownloadAlongWayAction extends DownloadAlongAction {
     
    8385        double buffer_y = buffer_dist / 100000.0;
    8486        double buffer_x = buffer_y / scale;
    8587        double max_area = panel.getArea() / 10000.0 / scale;
    86         Area a = new Area();
     88        Path2D path = new Path2D.Double();
    8789        Rectangle2D r = new Rectangle2D.Double();
    8890
    8991        /*
     
    100102                if (previous != null && c.greatCircleDistance(previous) > buffer_dist) {
    101103                    Double d = c.greatCircleDistance(previous) / buffer_dist;
    102104                    int nbNodes = d.intValue();
    103                     Main.info(tr("{0} intermediate nodes to download.", nbNodes));
    104                     Main.info(tr("between {0} {1} and {2} {3}", c.lat(), c.lon(), previous.lat(),
     105                   
     106                    Logging.info(tr("{0} intermediate nodes to download.", nbNodes));
     107                    Logging.info(tr("between {0} {1} and {2} {3}", c.lat(), c.lon(), previous.lat(),
    105108                            previous.lon()));
    106109                    for (int i = 1; i < nbNodes; i++) {
    107110                        intermediateNodes.add(new LatLon(previous.lat()
    108111                                + (i * (c.lat() - previous.lat()) / (nbNodes + 1)), previous.lon()
    109112                                + (i * (c.lon() - previous.lon()) / (nbNodes + 1))));
    110                         Main.info(tr("  adding {0} {1}", previous.lat()
     113                        Logging.info(tr("  adding {0} {1}", previous.lat()
    111114                                + (i * (c.lat() - previous.lat()) / (nbNodes + 1)), previous.lon()
    112115                                + (i * (c.lon() - previous.lon()) / (nbNodes + 1))));
    113116                    }
     
    117120                    if (previous == null || d.greatCircleDistance(previous) > buffer_dist) {
    118121                        // we add a buffer around the point.
    119122                        r.setRect(d.lon() - buffer_x, d.lat() - buffer_y, 2 * buffer_x, 2 * buffer_y);
    120                         a.add(new Area(r));
     123//                        a.add(new Area(r));
     124                        path.append(r, false);
    121125                        previous = d;
    122126                    }
    123127                }
     
    124128                previous = c;
    125129            }
    126130        }
    127        
     131        Area a = new Area(path);
    128132        confirmAndDownloadAreas(a, max_area, panel.isDownloadOsmData(), panel.isDownloadGpxData(),
    129133                tr("Download from OSM along selected ways"), NullProgressMonitor.INSTANCE);
    130134    }