Index: src/org/openstreetmap/josm/gui/layer/GpxLayer.java =================================================================== --- src/org/openstreetmap/josm/gui/layer/GpxLayer.java (revision 3208) +++ src/org/openstreetmap/josm/gui/layer/GpxLayer.java (working copy) @@ -534,6 +534,13 @@ // paint large dots for points boolean large = Main.pref.getBoolean("draw.rawgps.large"); boolean hdopcircle = Main.pref.getBoolean("draw.rawgps.hdopcircle", true); + boolean ehpecircle = Main.pref.getBoolean("draw.rawgps.ehpecircle", true); + double ehpefactor; + try { + ehpefactor = Main.pref.getDouble("draw.rawgps.ehpefactor", 1.0d); + } catch (Exception e) { + ehpefactor = 1.0d; + } // color the lines colorModes colored = colorModes.none; try { @@ -730,7 +737,7 @@ /**************************************************************** ********** STEP 3d - DRAW LARGE POINTS AND HDOP CIRCLE ********* ****************************************************************/ - if (large || hdopcircle) { + if (large || hdopcircle || ehpecircle) { g.setColor(neutralColor); for (Collection segment : visibleSegments) { for (WayPoint trkPnt : segment) { @@ -750,6 +757,17 @@ int hdopp = mv.getPoint(new LatLon(trkPnt.getCoor().lat(), trkPnt.getCoor().lon() + 2*6*hdop*360/40000000)).x - screen.x; g.drawArc(screen.x-hdopp/2, screen.y-hdopp/2, hdopp, hdopp, 0, 360); } + if (ehpecircle && trkPnt.attr.get("ehpe") != null) { + // ehpe value + float ehpe = ((Float) trkPnt.attr.get("ehpe")).floatValue(); + if (ehpe < 0) { + ehpe = 0; + } + // ehpe pixels; 1 arcdeg of latitude is about 111,000m + int ehpep = Math.abs(mv.getPoint(new LatLon(trkPnt.getCoor().lat() + ehpefactor*ehpe/111000, trkPnt.getCoor().lon())).y - screen.y); + g.drawArc(screen.x - ehpep / 2, screen.y - ehpep / 2, ehpep, ehpep, 0, 360); + } + if (large) { g.fillRect(screen.x-1, screen.y-1, 3, 3); } Index: src/org/openstreetmap/josm/io/GpxReader.java =================================================================== --- src/org/openstreetmap/josm/io/GpxReader.java (revision 3208) +++ src/org/openstreetmap/josm/io/GpxReader.java (working copy) @@ -322,6 +322,12 @@ case ext: if (qName.equals("extensions")) { currentState = states.pop(); + } else if (qName.equals("ehpe")) { + try { + currentWayPoint.attr.put(qName, Float.parseFloat(accumulator.toString())); + } catch (Exception e) { + currentWayPoint.attr.put(qName, new Float(0)); + } } break; default: