diff --git a/src/ModelPlot.cpp b/src/ModelPlot.cpp index 64172238a..b58905ac0 100644 --- a/src/ModelPlot.cpp +++ b/src/ModelPlot.cpp @@ -230,8 +230,22 @@ ModelDataProvider::pointType(const RideFilePoint *point, int type) return point->km * MILES_PER_KM; } case MODEL_INTERVAL : return point->interval; - case MODEL_LAT : return point->lat; - case MODEL_LONG : return point->lon; + case MODEL_LAT : + { + if (ceil(point->lat) > 90 || floor(ceil(point->lat)) < -90) + return 0; + else + return point->lat *1000; + } + break; + case MODEL_LONG : + { + if (ceil(point->lon) > 180 || floor(point->lon) < -180) + return 0; + else + return point->lon *1000; + } + break; case MODEL_AEPF : if (point->watts == 0 || point->cad == 0) return 0; else return ((point->watts * 60.0) / (point->cad * cranklength * 2.0 * PI)); @@ -276,8 +290,8 @@ ModelDataProvider::describeType(int type, bool longer) return ("Elapsed Distance (mi)"); } case MODEL_INTERVAL : return ("Interval Number"); // XXX implemented differently - case MODEL_LAT : return ("Latitude (degree offset)"); - case MODEL_LONG : return ("Longitude (degree offset)"); + case MODEL_LAT : return ("Latitude (degree x 1000)"); + case MODEL_LONG : return ("Longitude (degree x 1000)"); case MODEL_CPV : return ("Circumferential Pedal Velocity (cm/s)"); case MODEL_AEPF : return ("Average Effective Pedal Force (N)"); @@ -349,9 +363,9 @@ ModelDataProvider::ModelDataProvider (BasicModelPlot &plot, ModelSettings *setti //plot.makeCurrent(); - double maxbinx =0, maxbiny =0; + double maxbinx =-65535, maxbiny =-65535; double minbinx =65535, minbiny =65535; - double mincol =65535, maxcol =0; + double mincol =65535, maxcol =-65535; // // Create Plot dataset, filter on values and calculate averages etc @@ -368,6 +382,10 @@ ModelDataProvider::ModelDataProvider (BasicModelPlot &plot, ModelSettings *setti // ignore zero points if (settings->ignore && (dx==0 || dy==0)) continue; + // even further ignore 0 for lat/lon + if ((settings->y == MODEL_LAT || settings->y == MODEL_LONG) && dy == 0) continue; + if ((settings->x == MODEL_LAT || settings->x == MODEL_LONG) && dx == 0) continue; + // get z value double zed=0; if (settings->z == MODEL_XYTIME) zed = settings->ride->ride()->recIntSecs(); // time at diff --git a/src/ModelWindow.cpp b/src/ModelWindow.cpp index eecf53341..b81ef1c47 100644 --- a/src/ModelWindow.cpp +++ b/src/ModelWindow.cpp @@ -40,9 +40,8 @@ ModelWindow::addStandardChannels(QComboBox *box) box->addItem(tr("CPV"), MODEL_CPV); box->addItem(tr("Time"), MODEL_TIME); box->addItem(tr("Distance"), MODEL_DISTANCE); - //box->addItem(tr("Interval"), MODEL_INTERVAL); //XXX supported differently for now - //box->addItem(tr("Latitude"), MODEL_LAT); //XXX weird values make the plot ugly - //box->addItem(tr("Longitude"), MODEL_LONG); //XXX weird values make the plot ugly + box->addItem(tr("Latitude"), MODEL_LAT); + box->addItem(tr("Longitude"), MODEL_LONG); } ModelWindow::ModelWindow(MainWindow *parent, const QDir &home) : @@ -80,13 +79,13 @@ ModelWindow::ModelWindow(MainWindow *parent, const QDir &home) : zSelector = new QComboBox; addStandardChannels(zSelector); zSelector->addItem(tr("Time at X&Y"), MODEL_XYTIME); - zSelector->setCurrentIndex(10); // time at xy + zSelector->setCurrentIndex(12); // time at xy colorSelector = new QComboBox; addStandardChannels(colorSelector); colorSelector->addItem(tr("Power Zone"), MODEL_POWERZONE); colorSelector->addItem(tr("Time at X&Y"), MODEL_XYTIME); - colorSelector->setCurrentIndex(10); // power zone + colorSelector->setCurrentIndex(12); // power zone styleSelector = new QComboBox; styleSelector->addItem(tr("Bar")); @@ -310,9 +309,10 @@ static struct preset { } presets[] = { { "User Defined", 0, 0, 0, 0, true, 20 }, - { "Natural Cadence Selection", 0, 1, 10, 10, false, 5 }, // don't ignore zero for cadences! - { "Power Fatigue", 9, 0, 10, 10, true, 5 }, - { "Impact of Altitude", 4, 2, 0, 10, true, 10 }, + { "Natural Cadence Selection", 0, 1, 12, 12, false, 5 }, // don't ignore zero for cadences! + { "Route Visualisation", 11, 10, 4, 4, false, 5 }, // don't ignore zero for cadences! + { "Power Fatigue", 9, 0, 12, 12, true, 5 }, + { "Impact of Altitude", 4, 2, 0, 12, true, 10 }, { "", 0, 0, 0, 0, false, 0 } };