This commit is contained in:
bastianonm 2012-04-12 14:49:22 +00:00
parent 01a41563ef
commit 04d99ebd50
10 changed files with 197 additions and 70 deletions

View File

@ -4,37 +4,71 @@
*/ */
var t;
var funqueue = [];
var infowindow; var infowindow;
var mapLoading = false;
var CustomMarker;
function CustomMarker( map, latlng, src, img_w, img_h) { var wrapFunction = function(fn, context, params) {
this.latlng_ = latlng; return function() {
fn.apply(context, params);
};
}
// Once the LatLng and text are set, add the overlay to the map. This will function wpgpxmaps(params)
// trigger a call to panes_changed which should in turn call draw. {
this.setMap(map); funqueue.push( wrapFunction(_wpgpxmaps, this, [params]));
this.src_ = src; unqueue();
this.img_w_ = img_w; }
this.img_h_ = img_h;
}
CustomMarker.prototype = new google.maps.OverlayView(); function unqueue()
{
if ((google == undefined || google.maps == undefined || Highcharts == undefined))
{
t = setTimeout("unqueue()",200);
}
else
{
setup();
while (funqueue.length > 0) {
(funqueue.shift())();
}
}
}
CustomMarker.prototype.draw = function() { function setup()
var me = this; {
// Check if the el has been created. CustomMarker = function( map, latlng, src, img_w, img_h) {
var el = this.img_; this.latlng_ = latlng;
if (!el) {
el = this.img_ = document.createElement('img'); // Once the LatLng and text are set, add the overlay to the map. This will
// trigger a call to panes_changed which should in turn call draw.
this.setMap(map);
this.src_ = src;
this.img_w_ = img_w;
this.img_h_ = img_h;
}
CustomMarker.prototype = new google.maps.OverlayView();
CustomMarker.prototype.draw = function() {
var me = this;
// Check if the el has been created.
var el = this.img_;
if (!el) {
el = this.img_ = document.createElement('img');
el.style.cssText = "border:1px solid #fff;position:absolute;cursor:pointer;margin:0;width:"+(this.img_w_/3)+"px;height:"+(this.img_h_/3)+"px;z-index:1;"; el.style.cssText = "border:1px solid #fff;position:absolute;cursor:pointer;margin:0;width:"+(this.img_w_/3)+"px;height:"+(this.img_h_/3)+"px;z-index:1;";
el.setAttribute("lat",this.latlng_.lat()); el.setAttribute("lat",this.latlng_.lat());
el.setAttribute("lon",this.latlng_.lng()); el.setAttribute("lon",this.latlng_.lng());
el.src=this.src_; el.src=this.src_;
google.maps.event.addDomListener(el, "click", function(event) { google.maps.event.addDomListener(el, "click", function(event) {
google.maps.event.trigger(me, "click",el); google.maps.event.trigger(me, "click",el);
}); });
google.maps.event.addDomListener(el, "mouseover", function(event) { google.maps.event.addDomListener(el, "mouseover", function(event) {
var _t = el.style.top.replace('px',''); var _t = el.style.top.replace('px','');
@ -58,30 +92,34 @@ var infowindow;
}, 100); }, 100);
}); });
// Then add the overlay to the DOM // Then add the overlay to the DOM
var panes = this.getPanes(); var panes = this.getPanes();
panes.overlayImage.appendChild(el); panes.overlayImage.appendChild(el);
} }
// Position the overlay // Position the overlay
var point = this.getProjection().fromLatLngToDivPixel(this.latlng_); var point = this.getProjection().fromLatLngToDivPixel(this.latlng_);
if (point) { if (point) {
el.style.left = point.x + 'px'; el.style.left = point.x + 'px';
el.style.top = point.y + 'px'; el.style.top = point.y + 'px';
this.orig_left = point.x; this.orig_left = point.x;
this.orig_top = point.y; this.orig_top = point.y;
} }
}; };
CustomMarker.prototype.remove = function() { CustomMarker.prototype.remove = function() {
// Check if the overlay was on the map and needs to be removed. // Check if the overlay was on the map and needs to be removed.
if (this.img_) { if (this.img_) {
this.img_.parentNode.removeChild(this.img_); this.img_.parentNode.removeChild(this.img_);
this.img_ = null; this.img_ = null;
} }
}; };
function wpgpxmaps(params) }
function _wpgpxmaps(params)
{ {
var targetId = params.targetId; var targetId = params.targetId;
@ -91,6 +129,7 @@ function wpgpxmaps(params)
var graphEle = params.graphEle; var graphEle = params.graphEle;
var graphSpeed = params.graphSpeed; var graphSpeed = params.graphSpeed;
var graphHr = params.graphHr; var graphHr = params.graphHr;
var graphCad = params.graphCad;
var waypoints = params.waypoints; var waypoints = params.waypoints;
var unit = params.unit; var unit = params.unit;
var unitspeed = params.unitspeed; var unitspeed = params.unitspeed;
@ -98,6 +137,7 @@ function wpgpxmaps(params)
var color2 = params.color2; var color2 = params.color2;
var color3 = params.color3; var color3 = params.color3;
var color4 = params.color4; var color4 = params.color4;
var color5 = params.color5;
var chartFrom1 = params.chartFrom1; var chartFrom1 = params.chartFrom1;
var chartTo1 = params.chartTo1; var chartTo1 = params.chartTo1;
var chartFrom2 = params.chartFrom2; var chartFrom2 = params.chartFrom2;
@ -570,9 +610,48 @@ function wpgpxmaps(params)
l_y_arr.push(l_hr); l_y_arr.push(l_hr);
} }
if (graphCad != '')
{
var l_cad = { suf : "", dec : 0 };
var cadData = [];
for (i=0; i<valLen; i++)
{
cadData.push([graphDist[i],graphCad[i]]);
}
var yaxe = {
title: { text: null },
labels: {
//align: 'right',
formatter: function() {
return Highcharts.numberFormat(this.value, l_cad.dec) + l_cad.suf;
}
},
opposite: true
}
hoptions.yAxis.push(yaxe);
hoptions.series.push({
name: 'Cadence',
lineWidth: 1,
marker: { radius: 0 },
data : cadData,
color: color5,
yAxis: hoptions.series.length
});
l_y_arr.push(l_cad);
}
var hchart = new Highcharts.Chart(hoptions); var hchart = new Highcharts.Chart(hoptions);
} }
else {
jQuery("#hchart_" + params.targetId).css("display","none");
}
} }

View File

@ -1,10 +1,10 @@
=== WP GPX Maps === === WP GPX Maps ===
Contributors: bastianonm Contributors: bastianonm
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8VHWLRW6JBTML Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8VHWLRW6JBTML
Tags: maps, gpx, gps, graph, chart, google maps, highcharts, track, garmin, image, nextgen-gallery, nextgen, exif, OpenStreetMap, OpenCycleMap, Hike&Bike, heart rate, heartrate Tags: maps, gpx, gps, graph, chart, google maps, highcharts, track, garmin, image, nextgen-gallery, nextgen, exif, OpenStreetMap, OpenCycleMap, Hike&Bike, heart rate, heartrate, cadence
Requires at least: 2.0.0 Requires at least: 2.0.0
Tested up to: 3.3 Tested up to: 3.3
Stable tag: 1.1.15 Stable tag: 1.1.16
License: GPLv2 or later License: GPLv2 or later
Draws a gpx track with altitude graph Draws a gpx track with altitude graph
@ -77,9 +77,13 @@ The attributes are:
1. showhr: show heart rate inside the chart (default is FALSE) 1. showhr: show heart rate inside the chart (default is FALSE)
1. showcad: show cadence inside the chart (default is FALSE)
1. glinecolorspeed: speed line color (default is #ff0000) 1. glinecolorspeed: speed line color (default is #ff0000)
1. glinecolorhr: heart rate line color (default is #ff77bd) 1. glinecolorhr: heart rate line color (default is #ff77bd)
1. glinecolorcad: cadence line color (default is #beecff)
1. uomspeed: the unit of measure of speed are: 0, 1, 2 (0 = m/s, 1 = km/h, 2 = miles/h) 1. uomspeed: the unit of measure of speed are: 0, 1, 2 (0 = m/s, 1 = km/h, 2 = miles/h)
@ -115,8 +119,13 @@ Yes!
1. Gpx with waypoints 1. Gpx with waypoints
2. Admin area - List of tracks 2. Admin area - List of tracks
2. Admin area - Settings 2. Admin area - Settings
2. Altitude & Speed
2. Altitude & Speed & Hearth rate
== Changelog == == Changelog ==
= 1.1.16 =
* Cadence chart (where available)
* minor bug fixes
= 1.1.15 = = 1.1.15 =
* migration from google chart to highcharts. Highcharts are much better than google chart! This is the base for a new serie of improvements. Stay in touch for the next releases! * migration from google chart to highcharts. Highcharts are much better than google chart! This is the base for a new serie of improvements. Stay in touch for the next releases!
* heart rate chart (where available) * heart rate chart (where available)
@ -189,6 +198,7 @@ Yes!
* Initial release * Initial release
== Upgrade Notice == == Upgrade Notice ==
= 1.1.16 =
= 1.1.15 = = 1.1.15 =
= 1.1.14 = = 1.1.14 =
= 1.1.13 = = 1.1.13 =

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 78 KiB

BIN
screenshot-5.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
screenshot-6.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

View File

@ -3,7 +3,7 @@
Plugin Name: WP-GPX-Maps Plugin Name: WP-GPX-Maps
Plugin URI: http://www.darwinner.it/ Plugin URI: http://www.darwinner.it/
Description: Draws a gpx track with altitude graph Description: Draws a gpx track with altitude graph
Version: 1.1.15 Version: 1.1.16
Author: Bastianon Massimo Author: Bastianon Massimo
Author URI: http://www.pedemontanadelgrappa.it/ Author URI: http://www.pedemontanadelgrappa.it/
License: GPL License: GPL
@ -19,10 +19,8 @@ add_shortcode('sgpx','handle_WP_GPX_Maps_Shortcodes');
register_activation_hook(__FILE__,'WP_GPX_Maps_install'); register_activation_hook(__FILE__,'WP_GPX_Maps_install');
register_deactivation_hook( __FILE__, 'WP_GPX_Maps_remove'); register_deactivation_hook( __FILE__, 'WP_GPX_Maps_remove');
add_filter('plugin_action_links', 'WP_GPX_Maps_action_links', 10, 2); add_filter('plugin_action_links', 'WP_GPX_Maps_action_links', 10, 2);
add_action('wp_enqueue_scripts', 'enqueue_WP_GPX_Maps_scripts'); add_action('wp_enqueue_scripts', 'enqueue_WP_GPX_Maps_scripts');
function WP_GPX_Maps_action_links($links, $file) { function WP_GPX_Maps_action_links($links, $file) {
static $this_plugin; static $this_plugin;
@ -60,7 +58,8 @@ function print_WP_GPX_Maps_scripts()
</script> </script>
<style type="text/css"> <style type="text/css">
.wpgpxmaps { clear:both; } .wpgpxmaps { clear:both; }
.wpgpxmaps img{ width: auto; max-width: auto; } .entry-content .wpgpxmaps img,
.wpgpxmaps img { max-width: none; width: none; }
.wpgpxmaps .ngimages { display:none; } .wpgpxmaps .ngimages { display:none; }
</style> </style>
<?php <?php
@ -92,6 +91,7 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
$mh = findValue($attr, "mheight", "wpgpxmaps_height", "450px"); $mh = findValue($attr, "mheight", "wpgpxmaps_height", "450px");
$mt = findValue($attr, "mtype", "wpgpxmaps_map_type", "HYBRID"); $mt = findValue($attr, "mtype", "wpgpxmaps_map_type", "HYBRID");
$gh = findValue($attr, "gheight", "wpgpxmaps_graph_height", "200px"); $gh = findValue($attr, "gheight", "wpgpxmaps_graph_height", "200px");
$showCad = findValue($attr, "showcad", "wpgpxmaps_show_cadence", false);
$showHr = findValue($attr, "showhr", "wpgpxmaps_show_hr", false); $showHr = findValue($attr, "showhr", "wpgpxmaps_show_hr", false);
$showW = findValue($attr, "waypoints", "wpgpxmaps_show_waypoint", false); $showW = findValue($attr, "waypoints", "wpgpxmaps_show_waypoint", false);
$showSpeed = findValue($attr, "showspeed", "wpgpxmaps_show_speed", false); $showSpeed = findValue($attr, "showspeed", "wpgpxmaps_show_speed", false);
@ -103,6 +103,7 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
$color_graph = findValue($attr, "glinecolor", "wpgpxmaps_graph_line_color", "#3366cc"); $color_graph = findValue($attr, "glinecolor", "wpgpxmaps_graph_line_color", "#3366cc");
$color_graph_speed = findValue($attr, "glinecolorspeed", "wpgpxmaps_graph_line_color_speed", "#ff0000"); $color_graph_speed = findValue($attr, "glinecolorspeed", "wpgpxmaps_graph_line_color_speed", "#ff0000");
$color_graph_hr = findValue($attr, "glinecolorhr", "wpgpxmaps_graph_line_color_hr", "#ff77bd"); $color_graph_hr = findValue($attr, "glinecolorhr", "wpgpxmaps_graph_line_color_hr", "#ff77bd");
$color_graph_cad = findValue($attr, "glinecolorcad", "wpgpxmaps_graph_line_color_cad", "#beecff");
$chartFrom1 = findValue($attr, "chartfrom1", "wpgpxmaps_graph_offset_from1", ""); $chartFrom1 = findValue($attr, "chartfrom1", "wpgpxmaps_graph_offset_from1", "");
$chartTo1 = findValue($attr, "chartfo1", "wpgpxmaps_graph_offset_to1", ""); $chartTo1 = findValue($attr, "chartfo1", "wpgpxmaps_graph_offset_to1", "");
$chartFrom2 = findValue($attr, "chartfrom2", "wpgpxmaps_graph_offset_from2", ""); $chartFrom2 = findValue($attr, "chartfrom2", "wpgpxmaps_graph_offset_from2", "");
@ -115,16 +116,14 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
$r = rand(1,5000000); $r = rand(1,5000000);
$cacheFileName = "$gpx,$w,$mh,$mt,$gh,$showW,showHr,$donotreducegpx,$pointsoffset,$showSpeed,$uom,v1.1.15"; $cacheFileName = "$gpx,$w,$mh,$mt,$gh,$showW,$showHr,$showCad,$donotreducegpx,$pointsoffset,$showSpeed,$uom,v1.1.16";
$cacheFileName = md5($cacheFileName); $cacheFileName = md5($cacheFileName);
$gpxcache = gpxCacheFolderPath(); $gpxcache = gpxCacheFolderPath();
if(!(file_exists($gpxcache) && is_dir($gpxcache))) if(!(file_exists($gpxcache) && is_dir($gpxcache)))
{
@mkdir($gpxcache,0755,true); @mkdir($gpxcache,0755,true);
}
$gpxcache.= DIRECTORY_SEPARATOR.$cacheFileName.".tmp"; $gpxcache.= DIRECTORY_SEPARATOR.$cacheFileName.".tmp";
@ -139,6 +138,7 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
$points_graph_ele = $cache_obj["points_graph_ele"]; $points_graph_ele = $cache_obj["points_graph_ele"];
$points_graph_speed = $cache_obj["points_graph_speed"]; $points_graph_speed = $cache_obj["points_graph_speed"];
$points_graph_hr = $cache_obj["points_graph_hr"]; $points_graph_hr = $cache_obj["points_graph_hr"];
$points_graph_cad = $cache_obj["points_graph_cad"];
$waypoints = $cache_obj["waypoints"]; $waypoints = $cache_obj["waypoints"];
} catch (Exception $e) { } catch (Exception $e) {
$points_maps= ''; $points_maps= '';
@ -146,6 +146,7 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
$points_graph_ele = ''; $points_graph_ele = '';
$points_graph_speed = ''; $points_graph_speed = '';
$points_graph_hr = ''; $points_graph_hr = '';
$points_graph_cad = '';
$waypoints= ''; $waypoints= '';
} }
} }
@ -179,6 +180,7 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
$points_graph_ele = ''; $points_graph_ele = '';
$points_graph_speed = ''; $points_graph_speed = '';
$points_graph_hr = ''; $points_graph_hr = '';
$points_graph_cad = '';
$waypoints = ''; $waypoints = '';
foreach(array_keys($points->lat) as $i) foreach(array_keys($points->lat) as $i)
@ -224,6 +226,11 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
$points_graph_hr .= $points->hr[$i].','; $points_graph_hr .= $points->hr[$i].',';
} }
if ($showCad == true)
{
$points_graph_cad .= $points->cad[$i].',';
}
} }
if ($showW == true) if ($showW == true)
@ -241,6 +248,7 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
$points_graph_ele = preg_replace($p, "", $points_graph_ele); $points_graph_ele = preg_replace($p, "", $points_graph_ele);
$points_graph_speed = preg_replace($p, "", $points_graph_speed); $points_graph_speed = preg_replace($p, "", $points_graph_speed);
$points_graph_hr = preg_replace($p, "", $points_graph_hr); $points_graph_hr = preg_replace($p, "", $points_graph_hr);
$points_graph_cad = preg_replace($p, "", $points_graph_cad);
$waypoints = preg_replace($p, "", $waypoints); $waypoints = preg_replace($p, "", $waypoints);
@ -256,6 +264,9 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
if (preg_match("/^(0,?)+$/", $points_graph_hr)) if (preg_match("/^(0,?)+$/", $points_graph_hr))
$points_graph_hr = ""; $points_graph_hr = "";
if (preg_match("/^(0,?)+$/", $points_graph_cad))
$points_graph_cad = "";
} }
$ngimgs_data = ''; $ngimgs_data = '';
@ -279,6 +290,7 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
"points_graph_ele" => $points_graph_ele, "points_graph_ele" => $points_graph_ele,
"points_graph_speed" => $points_graph_speed, "points_graph_speed" => $points_graph_speed,
"points_graph_hr" => $points_graph_hr, "points_graph_hr" => $points_graph_hr,
"points_graph_cad" => $points_graph_cad,
"waypoints" => $waypoints) "waypoints" => $waypoints)
), ),
LOCK_EX); LOCK_EX);
@ -292,7 +304,6 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
<div id="ngimages_'.$r.'" class="ngimages" style="display:none">'.$ngimgs_data.'</div> <div id="ngimages_'.$r.'" class="ngimages" style="display:none">'.$ngimgs_data.'</div>
</div> </div>
<script type="text/javascript"> <script type="text/javascript">
jQuery(document).ready(function() { jQuery(document).ready(function() {
wpgpxmaps({ targetId : "'.$r.'", wpgpxmaps({ targetId : "'.$r.'",
mapType : "'.$mt.'", mapType : "'.$mt.'",
@ -301,6 +312,7 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
graphEle : ['.$points_graph_ele.'], graphEle : ['.$points_graph_ele.'],
graphSpeed : ['.$points_graph_speed.'], graphSpeed : ['.$points_graph_speed.'],
graphHr : ['.$points_graph_hr.'], graphHr : ['.$points_graph_hr.'],
graphCad : ['.$points_graph_cad.'],
waypoints : ['.$waypoints.'], waypoints : ['.$waypoints.'],
unit : "'.$uom.'", unit : "'.$uom.'",
unitspeed : "'.$uomspeed.'", unitspeed : "'.$uomspeed.'",
@ -308,6 +320,7 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
color2 : "'.$color_graph.'", color2 : "'.$color_graph.'",
color3 : "'.$color_graph_speed.'", color3 : "'.$color_graph_speed.'",
color4 : "'.$color_graph_hr.'", color4 : "'.$color_graph_hr.'",
color5 : "'.$color_graph_cad.'",
chartFrom1 : "'.$chartFrom1.'", chartFrom1 : "'.$chartFrom1.'",
chartTo1 : "'.$chartTo1.'", chartTo1 : "'.$chartTo1.'",
chartFrom2 : "'.$chartFrom2.'", chartFrom2 : "'.$chartFrom2.'",
@ -317,7 +330,6 @@ function handle_WP_GPX_Maps_Shortcodes($attr, $content='')
currentIcon : "'.$currentIcon.'" currentIcon : "'.$currentIcon.'"
}); });
}); });
</script>'; </script>';
return $output; return $output;
@ -367,6 +379,7 @@ function WP_GPX_Maps_install() {
add_option("wpgpxmaps_graph_line_color", '#3366cc', '', 'yes'); add_option("wpgpxmaps_graph_line_color", '#3366cc', '', 'yes');
add_option("wpgpxmaps_graph_line_color_speed", '#ff0000', '', 'yes'); add_option("wpgpxmaps_graph_line_color_speed", '#ff0000', '', 'yes');
add_option("wpgpxmaps_map_line_color", '#3366cc', '', 'yes'); add_option("wpgpxmaps_map_line_color", '#3366cc', '', 'yes');
add_option("wpgpxmaps_graph_line_color_cad", '#beecff', '', 'yes');
add_option("wpgpxmaps_graph_offset_from1", '', '', 'yes'); add_option("wpgpxmaps_graph_offset_from1", '', '', 'yes');
add_option("wpgpxmaps_graph_offset_to1", '', '', 'yes'); add_option("wpgpxmaps_graph_offset_to1", '', '', 'yes');
add_option("wpgpxmaps_graph_offset_from2", '', '', 'yes'); add_option("wpgpxmaps_graph_offset_from2", '', '', 'yes');
@ -377,6 +390,7 @@ function WP_GPX_Maps_install() {
add_option("wpgpxmaps_map_nggallery", '', '', 'yes'); add_option("wpgpxmaps_map_nggallery", '', '', 'yes');
add_option("wpgpxmaps_show_hr", '', '', 'yes'); add_option("wpgpxmaps_show_hr", '', '', 'yes');
add_option("wpgpxmaps_graph_line_color_hr", '#ff77bd', '', 'yes'); add_option("wpgpxmaps_graph_line_color_hr", '#ff77bd', '', 'yes');
add_option('wpgpxmaps_show_cadence','','','yes');
} }
@ -404,6 +418,8 @@ function WP_GPX_Maps_remove() {
delete_option('wpgpxmaps_map_nggallery'); delete_option('wpgpxmaps_map_nggallery');
delete_option('wpgpxmaps_show_hr'); delete_option('wpgpxmaps_show_hr');
delete_option('wpgpxmaps_graph_line_color_hr'); delete_option('wpgpxmaps_graph_line_color_hr');
delete_option('wpgpxmaps_show_cadence');
delete_option('wpgpxmaps_graph_line_color_cad');
} }
?> ?>

View File

@ -97,13 +97,15 @@ function WP_GPX_Maps_html_page() {
<li><b>waypoints</b>: print the gpx waypoints inside the map (default is FALSE)</li> <li><b>waypoints</b>: print the gpx waypoints inside the map (default is FALSE)</li>
<li><b>donotreducegpx</b>: print all the point without reduce it (default is FALSE)</li> <li><b>donotreducegpx</b>: print all the point without reduce it (default is FALSE)</li>
<li><b>pointsoffset</b>: skip points closer than XX meters(default is 10)</li> <li><b>pointsoffset</b>: skip points closer than XX meters(default is 10)</li>
<li><b>uom</b>: the unit of measure values are: 0, 1 (0 = meters, 1 = miles/feet)</li> <li><b>uom</b>: the unit of measure values are: 0, 1, 2 (0 = meters, 1 = miles/feet, 2 = meters/kilometers)</li>
<li><b>mlinecolor</b>: map line color (default is #3366cc)</li> <li><b>mlinecolor</b>: map line color (default is #3366cc)</li>
<li><b>glinecolor</b>: graph line color (default is #3366cc)</li> <li><b>glinecolor</b>: graph line color (default is #3366cc)</li>
<li><b>glinecolorhr</b>: heart rate line color (default is #ff77bd)</li>
<li><b>glinecolorspeed</b>: speed line color (default is #ff0000)</li> <li><b>glinecolorspeed</b>: speed line color (default is #ff0000)</li>
<li><b>glinecolorhr</b>: heart rate line color (default is #ff77bd)</li>
<li><b>glinecolorcad</b>: cadence line color (default is #beecff)</li>
<li><b>showspeed</b>: show speed inside the chart (default is FALSE)</li> <li><b>showspeed</b>: show speed inside the chart (default is FALSE)</li>
<li><b>showhr</b>: show heart rate inside the chart (default is FALSE)</li> <li><b>showhr</b>: show heart rate inside the chart (default is FALSE)</li>
<li><b>showcad</b>: show cadence inside the chart (default is FALSE)</li>
<li><b>uomspeed</b>: the unit of measure of speed are: 0, 1, 2 (0 = m/s, 1 = km/h, 2 = miles/h)</li> <li><b>uomspeed</b>: the unit of measure of speed are: 0, 1, 2 (0 = m/s, 1 = km/h, 2 = miles/h)</li>
<li><b>chartFrom1</b>: minimun value for altitude chart</li> <li><b>chartFrom1</b>: minimun value for altitude chart</li>
<li><b>chartTo1</b>: maxumin value for altitude chart</li> <li><b>chartTo1</b>: maxumin value for altitude chart</li>

View File

@ -11,6 +11,7 @@
$uomSpeed = get_option('wpgpxmaps_unit_of_measure_speed'); $uomSpeed = get_option('wpgpxmaps_unit_of_measure_speed');
$showSpeed = get_option('wpgpxmaps_show_speed'); $showSpeed = get_option('wpgpxmaps_show_speed');
$showHr = get_option('wpgpxmaps_show_hr'); $showHr = get_option('wpgpxmaps_show_hr');
$showCad = get_option('wpgpxmaps_show_cadence');
if (!($t)) if (!($t))
$t = 'HYBRID'; $t = 'HYBRID';
@ -182,13 +183,8 @@
<em>(leave empty for auto scale)</em> <em>(leave empty for auto scale)</em>
</td> </td>
</tr> </tr>
$showHr = get_option('wpgpxmaps_show_hr');
<tr> <tr>
<th scope="row">Show heart rate:</th> <th scope="row">Show Heart Rate (where aviable):</th>
<td> <td>
<input name="wpgpxmaps_show_hr" type="checkbox" value="true" <?php if($showHr == true){echo('checked');} ?> onchange="this.value = (this.checked)" /><i>Show heart rate</i> <input name="wpgpxmaps_show_hr" type="checkbox" value="true" <?php if($showHr == true){echo('checked');} ?> onchange="this.value = (this.checked)" /><i>Show heart rate</i>
</td> </td>
@ -201,14 +197,24 @@
</tr> </tr>
<tr>
<th scope="row">Show Cadence (where aviable):</th>
<td>
<input name="wpgpxmaps_show_cadence" type="checkbox" value="true" <?php if($showCad == true){echo('checked');} ?> onchange="this.value = (this.checked)" /><i>Show Cadence</i>
</td>
</tr>
<tr>
<th scope="row">Cadence line color:</th>
<td>
<input name="wpgpxmaps_graph_line_color_cad" type="color" data-hex="true" value="<?php echo get_option('wpgpxmaps_graph_line_color_cad'); ?>" />
</td>
</tr>
</table> </table>
<p class="submit"> <p class="submit">
<input type="hidden" name="action" value="update" /> <input type="hidden" name="action" value="update" />
<input name="page_options" type="hidden" value="wpgpxmaps_unit_of_measure,wpgpxmaps_graph_line_color,wpgpxmaps_show_speed,wpgpxmaps_graph_line_color_speed,wpgpxmaps_show_hr,wpgpxmaps_graph_line_color_hr,wpgpxmaps_unit_of_measure_speed,wpgpxmaps_graph_offset_from1,wpgpxmaps_graph_offset_to1,wpgpxmaps_graph_offset_from2,wpgpxmaps_graph_offset_to2" /> <input name="page_options" type="hidden" value="wpgpxmaps_unit_of_measure,wpgpxmaps_graph_line_color,wpgpxmaps_show_speed,wpgpxmaps_graph_line_color_speed,wpgpxmaps_show_hr,wpgpxmaps_graph_line_color_hr,wpgpxmaps_unit_of_measure_speed,wpgpxmaps_graph_offset_from1,wpgpxmaps_graph_offset_to1,wpgpxmaps_graph_offset_from2,wpgpxmaps_graph_offset_to2,wpgpxmaps_graph_line_color_cad,wpgpxmaps_show_cadence" />
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" /> <input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
</p> </p>

View File

@ -106,6 +106,7 @@
unset($points->dist[$i]); unset($points->dist[$i]);
unset($points->speed[$i]); unset($points->speed[$i]);
unset($points->hr[$i]); unset($points->hr[$i]);
unset($points->cad[$i]);
} }
} }
} }
@ -123,6 +124,7 @@
$points->dist = array(); $points->dist = array();
$points->speed = array(); $points->speed = array();
$points->hr = array(); $points->hr = array();
$points->cad = array();
$gpx = simplexml_load_file($filePath); $gpx = simplexml_load_file($filePath);
@ -155,17 +157,26 @@
$ele = $trkpt->ele; $ele = $trkpt->ele;
$time = $trkpt->time; $time = $trkpt->time;
$speed = (float)$trkpt->speed; $speed = (float)$trkpt->speed;
$hr=0; $hr = 0;
$cad = 0;
if (isset($trkpt->extensions)) if (isset($trkpt->extensions))
{ {
$_hr = @$trkpt->extensions->xpath('gpxtpx:TrackPointExtension/gpxtpx:hr/text()'); $_hr = $trkpt->extensions->xpath('gpxtpx:TrackPointExtension/gpxtpx:hr/text()');
if ($_hr) if ($_hr)
{ {
foreach ($_hr as $node) { foreach ($_hr as $node) {
$hr = (float)$node; $hr = (float)$node;
} }
} }
$_cad = $trkpt->extensions->xpath('gpxtpx:TrackPointExtension/gpxtpx:cad/text()');
if ($_cad)
{
foreach ($_cad as $node) {
$cad = (float)$node;
}
}
} }
if ($lastLat == 0 && $lastLon == 0) if ($lastLat == 0 && $lastLon == 0)
@ -178,6 +189,7 @@
array_push($points->dist, (float)round($dist,2)); array_push($points->dist, (float)round($dist,2));
array_push($points->speed, 0); array_push($points->speed, 0);
array_push($points->hr, $hr); array_push($points->hr, $hr);
array_push($points->cad, $cad);
$lastLat=$lat; $lastLat=$lat;
$lastLon=$lon; $lastLon=$lon;
@ -193,8 +205,6 @@
if ($speed == 0) if ($speed == 0)
{ {
$datediff = (float)my_date_diff($lastTime,$time); $datediff = (float)my_date_diff($lastTime,$time);
//echo "------------$time-------$lastTime-----";
//echo "------------$datediff------------";
if ($datediff>0) if ($datediff>0)
{ {
$speed = $offset / $datediff; $speed = $offset / $datediff;
@ -206,7 +216,6 @@
if (((float) $offset + (float) $lastOffset) > $gpxOffset) if (((float) $offset + (float) $lastOffset) > $gpxOffset)
{ {
//Bigger Offset -> write coordinate //Bigger Offset -> write coordinate
$avgSpeed = 0; $avgSpeed = 0;
foreach($speedBuffer as $s) foreach($speedBuffer as $s)
@ -225,6 +234,7 @@
array_push($points->dist, (float)round($dist, 2) ); array_push($points->dist, (float)round($dist, 2) );
array_push($points->speed, (float)round($avgSpeed, 1) ); array_push($points->speed, (float)round($avgSpeed, 1) );
array_push($points->hr, $hr); array_push($points->hr, $hr);
array_push($points->cad, $cad);
} }
else else
@ -269,6 +279,8 @@
array_push($points->ele, 0 ); array_push($points->ele, 0 );
array_push($points->dist, 0 ); array_push($points->dist, 0 );
array_push($points->speed, 0 ); array_push($points->speed, 0 );
array_push($points->hr, 0 );
array_push($points->cad, 0 );
$lastLat=$lat; $lastLat=$lat;
$lastLon=$lon; $lastLon=$lon;
} }
@ -286,6 +298,8 @@
array_push($points->ele, 0 ); array_push($points->ele, 0 );
array_push($points->dist, 0 ); array_push($points->dist, 0 );
array_push($points->speed, 0 ); array_push($points->speed, 0 );
array_push($points->hr, 0 );
array_push($points->cad, 0 );
} }
else else
{ {