projecthorus / sondehub-tracker

🎈 Frontend for SondeHub Radiosonde Tracking
https://v2.sondehub.org
MIT License
60 stars 26 forks source link

Sonde recovery report fails on non-GPS-enabled devices #311

Closed bismurphy closed 8 months ago

bismurphy commented 8 months ago

I recovered a sonde today, returned home, and went to make a recovery report. I went to sondehub.org, selected the sonde on the map, and clicked the "Car" icon in the top-right, as indicated on the Welcome screen. The serial number auto-populated, I added my callsign, and filled in the Notes. When I went to submit, I got "Outside distance limit". I tracked this down in the code, and determined that this is because my Latitude and Longitude are set to zeros (this is because my desktop, from which I made the report, does not have a GPS and therefore can not populate its location). After looking in the code, I found that a report is only allowed if the location of the user is within a distance range from the sonde. This made it reject the report. The responsible code is here:

https://github.com/projecthorus/sondehub-tracker/blob/de5d34946215cc36fc2a3797e082f6692e6fa192/js/chasecar.lib.js#L112

With "Use Car Position" set to "Off", the location of the car (actually my computer) should not matter.

I then went into my browser's Inspect Element feature, and manually modified the latitude and longitude values to be near the sonde. This resulted in a successful submission.

Users should be able to submit, even if their computer does not know their location. I see two reasonable solutions to this:

  1. Change the if-statement to check if the location is close, OR if the latitude and longitude are zero (indicating unknown location, in which case we should trust the user).
  2. Add a box to allow for manual location entry (like what I did with Inspect Element).

It appears that the recovery reporting feature is assuming that Sondehub is being run in Chase Mode (which aligns with the choice to attach it to the Chase Mode in the interface), but I think my use case of reporting a recovery after-the-fact should also be accounted for.

Perhaps this is intended behavior, in which case of course this issue can be closed, but I hope adjustments can be made to accommodate for users who do not operate in Chase Mode but still want to report a recovery.

darksidelemm commented 8 months ago

The distance limit is intended behaviour.

This is currently in place to try and limit the occurrences of people reporting recoveries for sondes halfway around the world. The limit is set to a fairly generous 200km, so even with very coarse geolocation (e.g. wifi or IP based) it should be possible to report recoveries.

You do not need to have chase mode enabled for your browser to report a location - you just need to allow geolocation for sondehub.org. This geolocation is also used for the user-location just to the right of the search box, which allows snapping to the users location.