Thinking About Compass

Compass is a GPS tracking server I have used for years. However, it has not been updated in some time. Recently, the developer, Aaron Parecki, has indicated he’s thinking of doing a refresh, so I thought it was time to make some suggestions as a user.

Beyond the essentials, which are updating the dependencies and fixing to the current version of IndieAuth and PHP, there are many options.

In 2018, Aaron wrote about wanting to store weather info in Compass at the time location records were created. The same option could be available for reverse geolocation.

But there are different providers out there for that. For the most flexibility, there needs to be a way to switch providers without Compass having to support them all directly.

The same idea applies to the map tiles themselves. All of this behavior could be flexible.

Finally, some way to import a trip, e.g. plane, train, from an external source. Compass technically has this through the API, but the issue here is that you could want this to merge/overwrite/reconcile with your local readings if you didn’t turn off your GPS while on the train.

I also looked at GeoPulse and Dawarich for inspiration. There are some features they have I think are worth adding without making this package too much of a clone.

  • GeoFence triggers
  • Historic Backfill of the proposed weather/reverse geocoding.
  • Improved ability to generate monthly, weekly, daily, yearly stats, even if this is just improved API options for an external stat source.

So, everything is about keeping Compass lean, extending its storage capability, and its ability to trigger or be triggered by external sources.

 

David Shanske

My day job is in training for an airline. I also develop Indieweb WordPress plugins so that others can take control of their online identity.

  1. David Shanske recently shared some of his thinking about Compass, prompted by the news that the developer, Aaron Parecki, is going to update it soon. I recently went through my own process of updating a fork of Compass and doing a bit more with it, so I reckon I might chime in too.

    David’s thoughts mostly concern weather records, reverse geocoding, and map tile providers. I confess, I’m less interested in recording the weather, and I’m OK with using OpenStreetMap, though that could change in future. I’m very much with David on the desire for Compass to generate a variety of stats on the fly. I have a collection of janky Python scripts that can process the data, but partly because they’re janky and partly because I don’t actually do anything with the stats, except display them, I gave up. Maybe a quick average distance and speed per transport mode would be worth having. Should it be in Compass? Maybe, although I could also see asking Claude to dejankify my scripts (or start again).

    On Trips, I can’t see myself importing trips into Compass from a source other than Overland, but it is surely a good idea for people like David. What I want, rather, is finer control over what Compass does when it receives a Trip. At the moment, it sends details via Micropub to a draft page on this site, and then I decide what to do with it. It would be neat if I could specify for each trip whether I want it to be sent or not.

    Right now, I don’t use reverse geocoding at all. If I want it, it is handled here rather than in Compass. But something I have never used in Overland is Visits, and I find myself wondering whether Compass could make use of Visits as a replacement for check-ins. I have not yet thought this through in any detail, not least because I don’t know what the record of a Visit entails. That may be where reverse geocoding is most useful, but I know I also want the opportunity to correct the location surfaced by reverse geocoding and to add more detail in the form of a note. I suppose what I want is for Compass to offer me the chance to turn a Visit into a Check-in.

    Overland is currently in active development. I should take this idea of Trip as Check-in there.

Leave a Reply

Your email address will not be published. Required fields are marked *


Your post must include a link to this post.

How does this work?
Write a response on your own website and include a link to this post. Then submit your response’s URL here. Your response may appear here after moderation. To update or remove it, edit or delete your original post and submit the same URL again. Learn more about Webmentions.