B4A Project - roTrackx Google Maps Way Tracker

Introduction

roTrackX is a way tracker solution using Google Maps with GPS.

The main goal was an easy to use tracker for Android devices and the ability to transfer, view and analyze tracks on a PC.

Functionality Android Device
  • Start Way Tracking (via button long click), view the Track on a Google Map with Duration (HH:MM:SS), Distance (km) and Speed (km/h), Stop (via button long click).
  • Store Tracks in a SQLite Database (the TrackStore). Each User can have its own Database based on its Username set.
  • List the stored Tracks with information about distance, speed, duration, start / stop time.
  • Delete a selected Track (via long click on list item).
  • Delete all or selected Tracks via Toolbar button.
  • View a selected Track in a Google Map with option to delete the Track.
  • Settings: DateTime format, GPS minumum time & distance, Camera Initial Zoom, Way Points line width, Username, Upload Server URL.
  • Settings: Upload the TrackStore Database to a Server.
Functionality PC
  • Download the TrackStore SQLite Database(s). Each User can have its own Database.
  • Select a TrackStore Database.
  • List the Tracks with information about distance, speed, duration, start / stop time.
  • Display a selected Track in a Google Map.
  • Display Start and Stop Marker with Infowindow.
  • Export CSV format: All TrackStores (no way points); Way Points for the selected track including distance between way points.

Usage

roTrackX has been initially developed for Personal Use only.
Whilst evolving commercial inquiries have been made, therefore the source can not be shared. In case of questions, please use the Contact Form.

Development

Tools used: B4A and B4J.
For those interested, some information about the concept:

B4A

  • A Track is defined as a Custom Type: Type TrackType (StartTime As String, StopTime As String, Duration As Long, Distance As Float, Speed As Float, TrackPoints As List).
  • The Tracks are stored in a KeyValueStore (SQlite Database). The Track Type is stored as a BLOB.
  • GPS (GPS Library) is used to capture the way points. To be able to continue tracking when the device is paused, GPS is defined as a Service.
  • The Tracks are displayed using the Google Maps libraries for B4A and B4J. This requires a Google Maps developer account to get a Google Maps API.
  • Tools activity to define the various settings.
  • Upload the TrackStore Database to a Server via a HTTP PostFile Job (OkHttp, OkHttpUtils2 Libraries) and a (simple) PHP script on the server.
  • Each installation enables to define a username (one per device). The username is used for uploading to the B4J roTrackX Viewer.

B4J

  • Download the TrackStore Database(s) via HTTP Download Jobs (list of files followed by each TrackStore).
  • List the downloaded TrackStores in a ChoiceBox.
  • List the Tracks (using a customized ListView) with the information from the TrackType as stored in the KeyValueStore BLOB.
  • Display the selected Track in a Google Map using the jGoogleMap library.
  • Display Start and Stop Marker with Infowindow via GoogleMap API.
  • Export CSV format: All TrackStores (no way points); Way Points for the selected track including distance between the way points.

ChangeLog

  • Jan 24, 2015: Version 1.1. TrackLog:select tracks to delete, TrackView:Delete track, Settings; layout improved to cope with (the many) layouts.
  • Jan 15, 2015: Version 1.0.
  • Jan 13, 2015: B4A Client: Optimized getting the way points, by the main activity, from the GPS service after pause; B4J roTrackX Viewer: Export CSV format for all TrackStores and Way Points for the selected track.
  • Jan 12, 2015: B4A Client: Field test running fine; B4J: roTrackX Viewer several enhancements & bug fixes.
  • Jan 10, 2015: Beta Version running in field tests. Shared info on my homepage.

ToDo

  • Android:Send a notification if tracking is started (planned for version 2.0)


Overview
Makerbeam Smartphone Holder by Rob