diff --git a/src/GoogleMapControl.cpp b/src/GoogleMapControl.cpp
index 878cf769d..9233dffad 100644
--- a/src/GoogleMapControl.cpp
+++ b/src/GoogleMapControl.cpp
@@ -23,11 +23,11 @@
#include "Zones.h"
#include "Settings.h"
#include "Units.h"
+#include "TimeUtils.h"
#include " << intervalName.toStdString() << "
";
+ oss << "";
+ int row = 0;
+ foreach (QString symbol, intervalMetrics) {
+ RideMetricPtr m = metrics.value(symbol);
+ if(m == NULL)
+ continue;
+ if (row % 2)
+ oss << "
";
+ return oss.str();
+}
+
+string GoogleMapControl::CreateMarkers()
+{
ostringstream oss;
oss.precision(6);
oss.setf(ios::fixed,ios::floatfield);
+ RideItem *ride = myRideItem;
+
+ // start marker
oss << "var marker;" << endl;
- int currentInterval = 0;
- std::vector";
+ else {
+ QColor color = QApplication::palette().alternateBase().color();
+ color = QColor::fromHsv(color.hue(), color.saturation() * 2, color.value());
+ oss << " ";
+ }
+ oss.setf(ios::fixed);
+ oss.precision(m->precision());
+ oss << " ";
+ row++;
+ }
+ oss << "" + m->name().toStdString() << " ";
+ oss << "";
+ if (m->units(metricUnits) == "seconds")
+ oss << time_to_string(m->value(metricUnits)).toStdString();
+ else
+ {
+ oss << m->value(metricUnits);
+ oss << " " << m->units(metricUnits).toStdString();
+ }
+ oss <<" ";
+ oss << "Start
\");" << endl;
+ oss << "map.addOverlay(marker);" << endl;
- int secs = intervalPoints.back().secs -
- intervalPoints.front().secs;
+ oss << CreateIntervalMarkers(ride);
- double avgSpeed = (distance/((double)secs)) * 3600;
+ // end marker
+ bool metricUnits = (appsettings->value(main, GC_UNIT, "Metric").toString() == "Metric");
- QTime time;
- time = time.addSecs(secs);
+ QStringList intervalMetrics = appsettings->value(this,
+ GC_SETTINGS_INTERVAL_METRICS,
+ GC_SETTINGS_INTERVAL_METRICS_DEFAULT).toString().split(",");
- AvgHR avgHr = for_each(intervalPoints.begin(),
- intervalPoints.end(),
- AvgHR());
- AvgPower avgPower = for_each(intervalPoints.begin(),
- intervalPoints.end(),
- AvgPower());
+ QHashLap: " << currentInterval << "
Distance: " << distance << " " - << (useMetricUnits ? "KM" : "Miles") << "
" ; - oss << "Time: " << time.toString().toStdString() << "
"; - oss << "Avg Speed>: " << avgSpeed << " " - << (useMetricUnits ? tr("KPH") : tr("MPH")).toStdString() - << "
"; - if(avgHr != 0) { - oss << "Avg HR: " << avgHr << "
"; - } - if(avgPower != 0) - { - oss << "Avg Power: " << avgPower << " Watts
"; - } - oss << "Alt Gained: " << altGained << " " - << (useMetricUnits ? tr("Meters") : tr("Feet")).toStdString() - << "
"; - oss << "\");" << endl; - oss << "map.addOverlay(marker);" << endl; - currentInterval = rfp.interval; - intervalPoints.clear(); - } - } +std::string GoogleMapControl::CreateMarker(int number, double lat, double lon, string &html) +{ + ostringstream oss; + oss.precision(6); + oss << "intervalIcon = new GIcon(G_DEFAULT_ICON);" << endl; + oss << "intervalIcon.image = \"http://gmaps-samples.googlecode.com/svn/trunk/markers/green/marker" << number << ".png\"" << endl; + oss << "markerOptions = { icon:intervalIcon };" << endl; + oss << "marker = new GMarker(new GLatLng( "; + oss<< lat << "," << lon << "),intervalIcon);" << endl; + oss << "marker.bindInfoWindowHtml(\"" << html << "\");"; + oss.precision(1); + oss << "map.addOverlay(marker);" << endl; return oss.str(); } diff --git a/src/GoogleMapControl.h b/src/GoogleMapControl.h index 3fc743c18..dc6a8f9db 100644 --- a/src/GoogleMapControl.h +++ b/src/GoogleMapControl.h @@ -54,8 +54,12 @@ G_OBJECT std::ostringstream &oss, int avgPower); std::string CreateMapToolTipJavaScript(); - std::string CreateIntervalMarkers(); + std::string CreateIntervalHtml(QHash