Mileage Tracker
Mileage Tracker is an open source AIR application written in Flex. I originally wrote it to help me keep track of tax-deductible mileage. My wife drives all over the area for her business and doesn't write down her mileage (how many of us do?). She does, however keep all her appointments in iCal, along with the address where she went.
This application uses the Google Maps Flash API to determine the distance between two addresses. You can also specify a trip as a "round trip" to calculate the return trip as well.
As with all open source software, you can freely look at the source code and tell me how I could improve it!
This is beta software which means there are probably bugs I haven't found yet. There's also considerable room for improvement and new features. Please let me know in the comments what features you'd like to see in future versions.
[inline]
[script type="text/javascript" src="http://www.ear-fung.us/wp-content/uploads/2009/01/swfobject.js"][/script]
[script type="text/javascript"]
// < ![CDATA[
// version 9.0.115 or greater is required for launching AIR apps.
var so = new SWFObject("http://www.ear-fung.us/wp-content/uploads/2009/01/airinstallbadge.swf", "Badge", "215", "180", "9.0.115", "#FFFFFF");
so.useExpressInstall('http://www.ear-fung.us/wp-content/uploads/2009/01/expressinstall.swf');
// these parameters are required for badge install:
so.addVariable("airversion", "0.1 beta 1"); // version of AIR runtime required
so.addVariable("appname", "Mileage Tracker"); // application name to display to the user
so.addVariable("appurl", "http://mileage-tracker.googlecode.com/files/MileageTracker.air"); // absolute URL (beginning with http or https) of the application ".air" file
// these parameters are required to support launching apps from the badge (but optional for install):
so.addVariable("appid", "us.earfungu.mileagetracker"); // the qualified application ID (ex. com.gskinner.air.MyApplication)
so.addVariable("pubid", ""); // publisher id
// this parameter is required in addition to the above to support upgrading from the badge:
so.addVariable("appversion", "0.1 beta 1"); // AIR application version
// these parameters are optional:
so.addVariable("imageurl", "http://www.ear-fung.us/wp-content/uploads/2009/01/airapp_128.png"); // URL for an image (JPG, PNG, GIF) or SWF to display in the badge (205px wide, 170px high)
so.addVariable("appinstallarg", "installed from web"); // passed to the application when it is installed from the badge
so.addVariable("applauncharg", "launched from web"); // passed to the application when it is launched from the badge
//so.addVariable("helpurl", "help.html"); // optional url to a page containing additional help, displayed in the badge's help screen
so.addVariable("hidehelp", "false"); // hides the help icon if "true"
so.addVariable("skiptransition", "false"); // skips the initial transition if "true"
so.addVariable("titlecolor", "#00AAFF"); // changes the color of titles
so.addVariable("buttonlabelcolor", "#00AAFF"); // changes the color of the button label
so.addVariable("appnamecolor", "#00AAFF"); // changes the color of the application name if the image is not specified or loaded
// these parameters allow you to override the default text in the badge:
// supported strings: str_error, str_err_params, str_err_airunavailable, str_err_airswf, str_loading, str_install, str_launch, str_upgrade, str_close, str_launching, str_launchingtext, str_installing, str_installingtext, str_tryagain, str_beta3, str_beta3text, str_help, str_helptext
so.addVariable("str_err_airswf", "Running locally?
The AIR proxy swf won't load properly when this demo is run from the local file system."); // overrides the error text when the AIR proxy swf fails to load
so.write("flashcontent");
// ]]>
[/script]
[/inline]
If you like this software, feel free to shoot me a few bucks with paypal.
Features:
- Google maps integration automatically infers non-complete addresses.
- iCal ICS format importing.
- CSV exporting.
- TO DO - CSV importing.
- Total mileage display.
- Filter data list for easy entry of multiple trips to the same address.
- Ability to hide entries with miles entered makes it easy to see what rows need calculation after an import.
Requirements:
- A computer running Adobe Air 1.5
Screenshots:



January 27th, 2009 - 07:11
Hi, just wanted to say what a great application, and wanted to know if you were planning to do any upgrades, I see a lot of potential. Some suggestions are:
1. Being able to save addresses so instead of typing them again and again, you can drop down a menu and select or if you start typing, it pops up the address.
2. Folders to classify your data, where you can save your content per year or classify per location etc, track mileage for different vehicles etc…
If you do so I’ll be more than welcome to beta test the updates.
Thanks.
Mike
January 27th, 2009 - 08:50
@Mike
Thanks for the positive comments. I’m definitely planning on keeping this project alive. I basically wrote the featureset to fit my needs this year for taxes, but I see a lot of potential as well.
January 27th, 2009 - 08:59
Mark,
Excellent, thanks for your prompt reply. One more thing I found would be useful, that google maps uses but is not enabled on your app, is to be able to change the route by dragging a point on the map. Thought that would be cool.
Once again awesome app.
Mike
February 10th, 2009 - 14:52
… as I sit here at lunch highlighting all the appointments that involved driving on a print out of my wife’s iCal for tax mileage…
I think I may give this a try. Thanks
March 9th, 2009 - 20:06
I downloaded this and like it after entering three trips in. My wife drives between the same 20 or so places. It would be great if you could somehow pull up previously entered addresses. I guess I can cut and paste them,,, that mght be easier than changing the code!
April 11th, 2009 - 18:47
Doesn’t work. I’m on OS X 10.5.5, downloaded Adobe Air, the app runs fine…..but import ics won’t import my exported iCal .ics file. Hmmm….