I’ve seen this general idea debated somewhere before
Unless you use a dedicated proxy for your weather app alone, doesn’t the location(s) you program into it form a fingerprint to whomever may be sniffing web traffic, which can then be associated with other network activity from the same origin device?
Most weather data either comes from the government, or a large private company - both entities from which certain threat models may want to conceal their location.
I’m not sure how you could mitigate this… maybe either mix your ‘real’ location(s) with an array of randomized locations? Or somehow request a massive swath of weather data for the entire region, and process it locally to pull out your target locations? Homebrew satellite dish to intercept weather data directly from the source?
At any rate, Im unaware of any weather tools that have preventative measures like this in place. Im pretty sure even Breezy directly sends your location to government servers. Maybe the comms protocol allows anonymity, I’m not too familiar
TL;DR: for each location a weather forecast is requested for, a sub-city–precision location hash ID is sent. If a user asks for multiple locations, the combination of hash IDs can become unique. The article doesn’t say the app sends GPS coordinates, but it says the combination of locations requested can be unique to a user, even without an account. It can be inferred that this, combined with IP-based geolocation, would allow rough tracking of users’ locations.
Using a VPN would obfuscate location tracking, but not the fingerprint.
If I’m not wrong Breezy Weather only fetches your first location periodically by default and the other locations only if you go in their respective sections, making the fingerprint way broader (as once city alone shouldn’t result in a unique fingerprint). This might be an option to minimise the risk, I’m not sure about other privacy focused weather apps, as I only tested this one and was satisified with it.
There is this changelog:
Background weather update will now only process the first location, unless you have multi cities usage. This makes the process more green and efficient, and other secondary locations will automatically be updated when you open them instead (this means that if you don’t check these locations very often, it will no longer uselessly refresh them in the background). A document has been written to describe in details how the full weather update process work: https://github.com/breezy-weather/breezy-weather/blob/ef99ca526d857372534de4749d34a567e96250c8/docs/UPDATES.md