Ticket #3222: diff

File diff, 4.7 KB (added by sbrunner, 16 years ago)

svn diff

  • src/org/openstreetmap/josm/gui/layer/GpxLayer.java

     
    421421            lines = Main.pref.getBoolean(linesKey);
    422422        // paint large dots for points
    423423        boolean large = Main.pref.getBoolean("draw.rawgps.large");
     424        boolean hdopcircle = Main.pref.getBoolean("draw.rawgps.hdopcircle", true);
    424425        // color the lines
    425426        colorModes colored = colorModes.none;
    426427        try {
     
    593594            } // end for trk
    594595        } // end if lines
    595596
     597
    596598        /****************************************************************
    597          ********** STEP 3d - DRAW LARGE POINTS *************************
     599         ********** STEP 3d - DRAW LARGE POINTS AND HDOP CIRCLE *********
    598600         ****************************************************************/
    599         if (large) {
     601        if (large || hdopcircle) {
    600602            g.setColor(neutralColor);
    601603            for (GpxTrack trk : data.tracks) {
    602604                for (Collection<WayPoint> segment : trk.trackSegs) {
     
    606608                            continue;
    607609                        Point screen = mv.getPoint(trkPnt.getEastNorth());
    608610                        g.setColor(trkPnt.customColoring);
    609                         g.fillRect(screen.x-1, screen.y-1, 3, 3);
     611                        if (hdopcircle && trkPnt.attr.get("hdop") != null) {
     612                            // hdop value
     613                            float hdop = ((Float)trkPnt.attr.get("hdop")).floatValue();
     614                            if (hdop < 0) {
     615                                hdop = 0;
     616                            }
     617                            // hdop pixels
     618                            int hdopp = mv.getPoint(new LatLon(trkPnt.getCoor().lat(), trkPnt.getCoor().lon() + 2*6*hdop*360/40000000)).x - screen.x;
     619                            g.drawArc(screen.x-hdopp/2, screen.y-hdopp/2, hdopp, hdopp, 0, 360);
     620                        }
     621                        if (large) {
     622                            g.fillRect(screen.x-1, screen.y-1, 3, 3);
     623                        }
    610624                    } // end for trkpnt
    611625                } // end for segment
    612626            } // end for trk
    613         } // end if large
     627        } // end if large || hdopcircle
    614628
    615629        /****************************************************************
    616630         ********** STEP 3e - DRAW SMALL POINTS FOR LINES ***************
  • src/org/openstreetmap/josm/gui/preferences/DrawingPreference.java

     
    4141    private JTextField drawRawGpsMaxLineLengthLocal = new JTextField(8);
    4242    private JCheckBox forceRawGpsLines = new JCheckBox(tr("Force lines if no segments imported."));
    4343    private JCheckBox largeGpsPoints = new JCheckBox(tr("Draw large GPS points."));
     44    private JCheckBox hdopCircleGpsPoints = new JCheckBox(tr("Draw a circle form HDOP value."));
    4445    private ButtonGroup colorGroup;
    4546    private JRadioButton colorTypeVelocity = new JRadioButton(tr("Velocity (red = slow, green = fast)"));
    4647    private JRadioButton colorTypeDilution = new JRadioButton(tr("Dilution of Position (red = high, green = low, if available)"));
     
    143144        panel.add(new JLabel(tr("Minimum distance (pixels)")), GBC.std().insets(60,0,0,0));
    144145        panel.add(drawGpsArrowsMinDist, GBC.eol().fill(GBC.HORIZONTAL).insets(5,0,0,5));
    145146
     147        // hdopCircleGpsPoints
     148        hdopCircleGpsPoints.setSelected(Main.pref.getBoolean("draw.rawgps.hdopcircle", true));
     149        hdopCircleGpsPoints.setToolTipText(tr("Draw a circle form HDOP value."));
     150        panel.add(hdopCircleGpsPoints, GBC.eop().insets(20,0,0,0));
     151
    146152        // largeGpsPoints
    147153        largeGpsPoints.setSelected(Main.pref.getBoolean("draw.rawgps.large", false));
    148154        largeGpsPoints.setToolTipText(tr("Draw larger dots for the GPS points."));
     
    275281            Main.pref.putInteger("draw.rawgps.colors", 0);
    276282        int ccti=colorTypeVelocityTune.getSelectedIndex();
    277283        Main.pref.putInteger("draw.rawgps.colorTracksTune", ccti==2 ? 10 : (ccti==1 ? 20 : 45));
     284        Main.pref.put("draw.rawgps.hdopcircle", hdopCircleGpsPoints.isSelected());
    278285        Main.pref.put("draw.rawgps.large", largeGpsPoints.isSelected());
    279286        Main.pref.put("draw.segment.direction", directionHint.isSelected());
    280287        Main.pref.put("draw.segment.relevant_directions_only", interestingDirections.isSelected());