BENBENBen Noble BEng, MBCS
The Background
University of Wales, Aberystwyth Studying Software Engineering Java as a taught language Some smaller modules in C
Industrial Year at Information Services Mostly technical support Required good problem solving skills
Microsoft Imagine Cup 2006 Sparked interest in mobile technology Introduction to .NET
The Search for an Idea
Wanted To use a new programming language To do something of interest to me To do something I would use afterward
Two Ideas Media Center Remote Record
To allow a user to set their PC to record a TV programme from their mobile phone.
BenBen
BenBen
The idea GPS tracking software with a social slant Users could view a map of their location GPS would record their route and time taken Routes could be shared to allow users to
‘race’. Calorie counter to estimate health benefits Other detailed information about their route
Length, speed, height above sea-level
But how to implement this?
Framework Choice
.NET Compact Framework
J2ME
Windows Mobile Devices
High level UI components
Choice of C#, VB.NET, etc
Java enabled phones Low level screen
drawing Java only
About to be used in the Imagine Cup Project
Extras
GPS How to parse NMEA strings
Map projections Switching between Mercator projection
and screen pixels as well as the WGS84 coordinate system
Map services/APIs Google, Microsoft or something else?
Mapping APIs
Both Google and Microsoft have APIs Written for use with HTML and Javascript Microsoft provide some functionality for
ASP.NET Nothing for C#.
How to access their content? Available through direct links. http://r0.ortho.tiles.virtualearth.net/tiles/
r0313131301230.png?g=15
The algorithm
Start with an image of the world. Divide the image into 4 sections Get the image which contains the
correct position And repeat
Build up the URL to the each image using the previous sections.
So, for Reading...
The algorithm
0 1
32
1
The algorithm
0 1
32
http://r0.ortho.tiles.virtualearth.net/tiles/r0.png?g=152
The algorithm
0 1
32
http://r3.ortho.tiles.virtualearth.net/tiles/r03.png?g=153
The algorithm
0 1
32
http://r1.ortho.tiles.virtualearth.net/tiles/r031.png?g=154
The algorithm
0 1
32
http://r3.ortho.tiles.virtualearth.net/tiles/r0313.png?g=155
The algorithm
0 1
32
http://r1.ortho.tiles.virtualearth.net/tiles/r03131.png?g=156
The algorithm
0 1
32
http://r3.ortho.tiles.virtualearth.net/tiles/r031313.png?g=157
The algorithm
0 1
32
http://r1.ortho.tiles.virtualearth.net/tiles/r0313131.png?g=158
The algorithm
0 1
32
http://r3.ortho.tiles.virtualearth.net/tiles/r03131313.png?g=159
The algorithm
0 1
32
http://r0.ortho.tiles.virtualearth.net/tiles/r031313130.png?g=1510
The algorithm
0 1
32
http://r1.ortho.tiles.virtualearth.net/tiles/r0313131301.png?g=1511
The algorithm
0 1
32
http://r2.ortho.tiles.virtualearth.net/tiles/r03131313012.png?g=15
The algorithm
0 1
32
http://a2.ortho.tiles.virtualearth.net/tiles/a03131313012.jpg?g=15
The algorithm
0 1
32
http://h2.ortho.tiles.virtualearth.net/tiles/h03131313012.jpg?g=15
The UI
Written for a Pocket PC Large screen Touchscreen capability Internet connectivity Bluetooth for GPS devices .NET Compact Framework UI Component
So how did it look?
The UI
Large Map Area Clickable Draggab
le
Menu Loading Saving Settings
Icons Zoom GPS on/off Cache an
area of map
The UI
Tracks Dots to
represent recorded positions
Size of dots represents accuracy
Summary
I enjoyed coding the program I demonstrated that I could learn a
new language I have used BenBen since graduation My first job after graduating was
based around BenBen EveryWhichWay at Environment Systems
BENBENBen Noble BEng, MBCS
[email protected]://www.benshouse.net