This evening, I added ground station support to my satellite tracker. The current implementation does nothing more than generate labeled placemarks with icons for each ground station. I plan on adding fields of view and line-of-sight indicators but first things first. Take a look at these example placemarks. These are what you get when you un-comment the examples in the default configuration file:
Even after elevating the eye-point, placemarks are still clearly visible.
Deciding how to implement ground station data using a configuration file was tricky and I am not quite sure if this is the best answer. I added a new 'ground' section that lets you define a station_icon and a list of stations. The list of stations contains multiple stations definitions, each with a station name longitude and latitude.
I like the way it reads, 'ground station icon' and 'ground stations' but i'm not sure how I feel about the stations list. In the code, it boils down to doing an eval which results in a list object:
stations = eval(config.get('ground','stations'))This was definitely an easy approach but what if I start adding more parameters to the ground stations? Maybe users will want to associate metadata with each ground station, like RF capabilities or maybe something cosmetic, like a custom station icon. The list could go on and on. By taking this approach, we would ultimately end up with a list containing a bunch of nameless values, making the configuration file harder to maintain. For now, it is what it is and I will make it more complicated when the time comes.