Ignore:
Timestamp:
2009-01-17T22:35:18+01:00 (15 years ago)
Author:
stoecker
Message:

fix #1978. Patch by xeen

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/gui/layer/GpxLayer.java

    r1245 r1283  
    8787    private Color computeCacheColorUsed;
    8888    private boolean computeCacheColored;
     89    private int computeCacheColorTracksTune;
    8990
    9091    public GpxLayer(GpxData d) {
     
    389390        int delta = Main.pref.getInteger("draw.rawgps.min-arrow-distance", 0);
    390391        // don't draw arrows nearer to each other than this
    391 
     392        int colorTracksTune = Main.pref.getInteger("draw.rawgps.colorTracksTune", 45); // allows to tweak line coloring for different speed levels.
    392393        /****************************************************************
    393394         ********** STEP 2a - CHECK CACHE VALIDITY **********************
     
    395396        if (computeCacheInSync && ((computeCacheMaxLineLengthUsed != maxLineLength) ||
    396397                                   (!neutralColor.equals(computeCacheColorUsed)) ||
    397                                    (computeCacheColored != colored))) {
     398                                   (computeCacheColored != colored) ||
     399                                   (computeCacheColorTracksTune != colorTracksTune))) {
    398400//          System.out.println("(re-)computing gpx line styles, reason: CCIS=" + computeCacheInSync + " CCMLLU=" + (computeCacheMaxLineLengthUsed != maxLineLength) + " CCCU=" +  (!neutralColor.equals(computeCacheColorUsed)) + " CCC=" + (computeCacheColored != colored));
    399401            computeCacheMaxLineLengthUsed = maxLineLength;
     
    401403            computeCacheColorUsed = neutralColor;
    402404            computeCacheColored = colored;
     405            computeCacheColorTracksTune = colorTracksTune;
    403406        }
    404407
     
    421424                            double dtime = trkPnt.time - oldWp.time;
    422425                            double vel = dist/dtime;
     426                            double velColor = vel/colorTracksTune*255;
    423427
    424428                            if (!colored) {
    425429                                trkPnt.speedLineColor = neutralColor;
    426                             } else if (dtime <= 0 || vel < 0 || vel > 36) { // attn: bad case first
     430                            } else if (dtime <= 0 || vel < 0 || velColor > 255) { // attn: bad case first
    427431                                trkPnt.speedLineColor = colors[255];
    428432                            } else {
    429                                 trkPnt.speedLineColor = colors[(int) (7*vel)];
     433                                trkPnt.speedLineColor = colors[(int) (velColor)];
    430434                            }
    431435                            if (maxLineLength == -1 || dist <= maxLineLength) {
Note: See TracChangeset for help on using the changeset viewer.