Featured Site: SportsDo
Where? http://www.sportsdo.net/
Developer: Sentient
The Site
Developed by British outdoor enthusiasts Jonathan Greensted, Nick Francis and colleagues, SportsDo is a sports tracking and logging system that enables athletes to record performance data in real time using their mobile "smart phone." When loaded with SportsDo software, the phone can issue visual or vocal performance updates to the athlete, and optionally broadcast the statistics live to friends and family. A complete log of the event can be uploaded for later analysis on the SportsDo web portal. SportsDo displays training routes on detailed 3D maps powered by Microsoft® Virtual Earth, a component of the Microsoft Windows Live network of Internet services. An athlete can analyze and replay a training session, such as the ski runs shown in the example, by watching performance statistics such as speed and elevation as a "doer" icon retraces the route. Route maps and performance data can also be shared with other members through the SportsDo website.
Why the Windows Live Platform?
"Affordable GPS and cellular technologies, combined with the power and convenience of XML-based Web services such as Virtual Earth, enabled us to develop SportsDo," says Greensted. "Virtual Earth provided a very high-quality mapping solution, with excellent 3D rendering, high resolution imaging at all zoom levels, and intuitive user interface." Other benefits of Windows Live Services include ease of use, enabling fast integration of Virtual Earth into the website. Clear, easy to use SDKs and APIs also provided helpful support to the development team.
Programming Environment
SportsDo was developed at Greensted's London-based software company Sentient with the Microsoft .NET framework 2.0, Microsoft ASP.NET AJAX, Visual Studio® 2005,and Microsoft SQL Server® 2005. The site is coded using C# for web services and the back end, and JavaScript and ASPX files for visualization.
Under the Hood
The following code shows how to display icons in 2D and 3D Virtual Earth maps of tracked sporting performances.
function AddPoints(points) {
// create an array to store the VEShape pushpins
var shapes = [];
for (var i=0; i
var pt = points[i];
var pushpin = new VEShape(VEShapeType.Pushpin, new VELatLong(pt.latitude, pt.longitude));
var iconSpec = new VECustomIconSpecification();
// customHTML to be used as icon in 2D mode
iconSpec.CustomHTML = "";
// icon that's used in 3D mode
iconSpec.Image = 'http://www.sportsdo.net/ui/icons/marker' + i + '.gif';
iconSpec.ImageOffset = new VEPixel(0, 0);
// set the icon for the pushpin
pushpin.SetCustomIcon(iconSpec);
// add to the array for later adding to the map
shapes.push(pushpin);
}
// bulk add the shapes to the map
map.AddShape(shapes);
}