FusionSoda: uTrackMe For iPhone

About

Screen Shot

  • Have you ever received that "where are you?" phone call?
  • Have you ever wanted to let someone follow your progress?
  • Ever got frustrated with those closed tracking solutions for the iPhone?
  • Ever worried about sharing your location with third party tracking services?

With uTrackMe you can publish your location to your own website and share real-time location information with who you want. It is the iPhone client for your very own tracking service.

uTrackMe allows you to publish your location to any web server that supports server side scripting. No third party tracking service required. A ready to use php script and the complete API description are available on our website.

Multiple iPhones running uTrackMe that publish to the same server can share their location information. A full screen map shows your location and the location of the other iPhones.

uTrackMe is not very everyone. To get the most out of the application you need at least:

  • Your own website with server side scripting.
  • A basic understanding of php or other server side scripting of your choice.
  • A basic understanding of HTTP requests.
Arrow download   |   uTrackMe   |   from the iTunes Store

Settings

Screen Shot

General

Name - your name or any other string that identifies you. This string is shown on top of the map in the main view of the application.

Map Type - uTrackMe supports regular street maps, satellite imagery or a combination of satellite imagery with a street map overlay.

Units - the type of units used for distance and speed in the UI.

Center On - group: the map is automatically centered and sized to include everyone in the screen. person: the map is centered on the selected person.

Server Settings

URL - the web URL (http://...) of the publish/tracking script on your, or a friends', webserver. You can download a ready to use php script or create you own script.

Username - [optional] username used for http authentication.

Password - [optional] password used for http authentication.

Update Every - the interval at which uTrackMe publishes your location to your webserver.

Publish Entire Track - default uTrackMe publishes the last known location. This is good enough for tracking purposes. With this option enabled uTrackMe will record and publish your entire track log, not just the last known location.

Advanced Settings

Distance Filter

Time Filter

Web Publish/Track API

uTrackMe works by sending a regular HTTP or HTTPS request to your webserver. Your location information is included in the request. uTrackMe expects other peoples location information in plist format in the response.

Your location information is sent using the POST method.

id=<...>&label=<...>&delta=<...>&lock=<...>& time[0]=<...>& lat[0]=<...>& lon[0]=<...>& acc[0]=<...>& spd[0]=<...>& dir[0]=<...>& alt[0]=<...>& time[1]=<...>& lat[1]=<...>& lon[1]=<...>& acc[1]=<...>& spd[1]=<...>& dir[1]=<...>& alt[1]=<...>& ... time[n]=<...>& lat[n]=<...>& lon[n]=<...>& acc[n]=<...>& spd[n]=<...>& dir[n]=<...>& alt[n]=<...>
  • id: [string] the iPhone UDID
  • label: [string] String used to identify this iPhone in the map view
  • delta: [integer] Refresh interval in seconds (used to determine when iPhone disappears)
  • lock: [integer] 0 = iPhone has no location lock; 1 = iPhone has location lock
Last known location or entire track log; if new location information available since previous publish:
  • time: [integer array] timestamp in seconds since Jan 1, 1970
  • lat: [double array] latitude
  • lon: [double array] longitude
  • acc: [integer array] horizontal accuracy in meters
  • spd: [double array] speed in meters per second (-1 if no valid speed available)
  • dir: [double array] course in degrees (-1 if no valid course available)
  • alt: [double array] altitude in meters (-1 if no valid altitude available)

The response is in plist format; either text format or XML.

For example:
(
   {
      udid = "8000-0017F23404D9";
      label = "Bob";
      lock = 1;
      time = 1245241092;
      lat = 37.361689;
      lon = -122.040731;
      acc = 100;
      spd = 8;
   },
   {
      udid = "8000-0017F23404D5";
      label = "Dave";
      lock = 0;
   },
)
  • udid: [string] the iPhone UDID
  • label: [string] String used to identify this iPhone in the map view
  • lock: [integer] 0 = iPhone has no location lock; 1 = iPhone has location lock
Last known location if available:
  • time: [integer] timestamp in seconds since Jan 1, 1970
  • lat: [double] latitude
  • lon: [double] longitude
  • acc: [integer] horizontal accuracy in meters
  • spd: [double] speed in meters per second (-1 if no valid speed available)

(Sample Code: utrackme_publish_v3.zip [7.6 kB])