');
k.appendTo(self);
g.appendTo(self);
f.appendTo(self);
var c=g[0].getContext('2d');
g[0].width=g[0].offsetWidth;
g[0].height=g[0].offsetHeight;
var cw=g[0].width-infowidth;
var aw=g[0].width;
cw=aw;
var ch=g[0].height;
var map = new google.maps.Map(k[0]);
map.setOptions({
scrollwheel: true,
draggable: true,
panControl:true,
mapTypeId: google.maps.MapTypeId.HYBRID
//mapTypeId: google.maps.MapTypeId.TERRAIN
});
var pt=[];
var nlt=0;
var slt=90;
var wlg=180;
var elg=0;
var lev=100000;
var hev=0;
var dt=0;
var lps=null;
var acc=0;
var dsc=0;
for(var i=0;i
0){r[i].ev=r[i-1].ev*0.9+r[i].ev*0.1;}
nlt=r[i].lt>nlt?r[i].lt:nlt;
slt=r[i].ltelg?r[i].lg:elg;
lev=Math.min(r[i].ev,lev);
hev=Math.max(r[i].ev,hev);
var cps=new google.maps.LatLng(r[i].lt,r[i].lg);
pt.push(cps);
if(i!==0){
var ldt=google.maps.geometry.spherical.computeDistanceBetween(cps,lps);
dt+=ldt;
r[i].dt=dt;
if(r[i-1].evr[i].ev){dsc+=r[i-1].ev-r[i].ev;}
}
lps=cps;
}
var dev=hev-lev;
dev=Math.max(dev,minheight);
var pl=new google.maps.Polyline({
path:pt,
strokeColor:"#FF0000",
strokeWeight:2,
strokeOpacity:0.9,
});
pl.setMap(map);
var b=new google.maps.LatLngBounds(new google.maps.LatLng(slt,wlg),new google.maps.LatLng(nlt,elg));
map.fitBounds(b);
var dx=cw/dt;
var dy=ch/dev;
c.fillStyle='white';
c.fillRect(0,0,cw,ch);
c.strokeStyle='lightgray';
c.lineWidth=1;
for(i=0;i<4;i++){
c.beginPath();
c.moveTo(0,ch/4*i);
c.lineTo(cw-1,ch/4*i);
c.closePath();
c.stroke();
}
c.fillStyle='black';
c.beginPath();
c.moveTo(cw-1,ch-1);
c.lineTo(0,ch-1);
c.lineTo(0,ch-1-(r[0].ev-lev)*dy);
for(i=1;iDownload GPX]";}
s+=" (c)kanasys.com";
f.html(s);
};
$.fn.showGpxTracksString=function(gpx){
this.each(function(){
var self=this;
var xml=$.parseXML(gpx);
var track=[];
$(xml).find("trkpt").each(function() {
var tm=new Date($(this).find('time').text());
track.push({lt:parseFloat($(this).attr('lat')),lg:parseFloat($(this).attr('lon')),ev:parseFloat($(this).find('ele').text()),tm:tm});
});
gpxHandler(self,track);
});
};
$.fn.showGpxTracks=function(optionalUrl){
this.each(function(){
var self=this;
var gpxurl=optionalUrl;
if(!gpxurl){gpxurl=$(this).attr('src');}
if(!gpxurl){return;}
function loadGpx(gpxurl,cb){
$.ajax({
url:gpxurl,
type:'GET',
dataType:'xml',
timeout:20000,
error:function(e) {
console.log(e);
return;
},
success:function(xml){
var track=[];
$(xml).find("trkpt").each(function() {
var tm=new Date($(this).find('time').text());
track.push({lt:parseFloat($(this).attr('lat')),lg:parseFloat($(this).attr('lon')),ev:parseFloat($(this).find('ele').text()),tm:tm});
});
if(track.length>1){cb(self,track,gpxurl);}
}
});
}
loadGpx(gpxurl,gpxHandler);
});
};
})(jQuery);