25 March 2008

Where Am I?

I’m going to be traveling with a small GPS satellite link called the Find Me Spot which will allow me to check-in from time to time while Traveling. The coverage in Borneo looks to be marginal, but I’ll give it a try anyway.

So, how does this all work? Keep reading for all of the technical details…

Tad purchased the Find Me Spot I am borrowing. He will have far more use for it that I will. I am interested in seeing how it works on the trip to Borneo, however I don’t have high hopes that it will work well. The coverage maps for the Find Me Spot show that coverage will be reduced or non-existent. Never the less, I’m taking the unit to see what it will do.

There are a few issues with the Spot. It has a tracking mode which will beacon a position every 10 minutes, however the information is only available by signing into the spot web page, which only the owner can do. There is also a Check-In mode which will send email to a list of people each time the check in button is pressed. The email includes the coordinates and location of the check-in along with the time/date and a link to Google Maps to show the location. While this is useful, it could be annoying to get a ton of emails as I move around. I really wanted to show my location on a web page that people could check (or not) when they were interested.

My first thought was to send the emails to an email account and have the blog software retrieve the emails and display them. While in theory that would work, issues with IMAP and SSL prevented me from taking the easy way out. Instead I needed to find another way to broadcast the information. I considered a mailing list - then people could subscribe/unsubscribe as needed. I setup a free discussion list using Google Groups. I setup the Spot to send email to the group. Then I found that I could get an RSS feed of the emails from Google Groups. Now were getting some where.

I setup an RSS feed reader in Wordpress to display the last few emails that were sent to the group. Using a custom module called the KB Advanced RSS Widget I was able to display the feed and enable the link to Google Maps. Finally some GPS-Mapping goodness.

Next I moved on to the Yahoo Pipes mash-up editor with the intent of cleaning up the text of the messages displayed in the RSS feed. While working on that I got side tracked by a Pipes module called the Location Extractor. This module will look for latitude and longitude information in the RSS feed and parse it out into coordinate - and I will do this from (among other things) a Google maps URL. Pipes outputs a GeoRSS feed which can be presented in a dynamic KML file, which a custom Google Maps API web page sucks right in and processes into the map you see above. Since the original title of the emails from the Spot are always the same, I threw a Replace module in and copied the content field to the title field so you would get the whole message when clicking on the marker.

So from the ground GPS signals are received, a message is sent to a satellite every time the Check-In button is pressed. When the satellite signal is received an email is generated and sent to Google Groups. Google Groups receives the message and adds it to the RSS feed. The RSS feed is displayed in the Where Am I panel on my Wordpress blog. At the same time, the RSS feed is parsed by a custom Yahoo Pipe which transforms the feed into a KML file, which Google maps reads and uses to dynamically generate the map. Simple!

Leave me a voicemail