TrackMyIndoorWorkout / TrackMyIndoorWorkout

Indoor fitness machine (bike, treadmill, rower, kayak / canoe / swim ergometer, elliptical) companion app to record virtual workouts with synthetic GPS track of simply circling on a track shape route
https://TrackMyIndoorWorkout.github.io
Apache License 2.0
38 stars 9 forks source link

Offer location selection for users for the GPS tracks #139

Closed MrCsabaToth closed 1 year ago

MrCsabaToth commented 3 years ago

Christian Derungs suggestion, he is a user from Switzerland. What we definitely cannot do is to let the user freely pick any GPS location. However we can provide a fixed list developed by us. Christian advised one location for each time zone. That would mean 24 * 3 track (1 running, 1 cycling, 1 open water) for each time zone, where the cycling track doesn't have any cycling segments (so it cannot be a velodrome), the running track cannot have a running segment, and the open water.

The interference avoidance is to prevent any clash with the non virtual athletes: devices can be grossly miscalibrated (for example IC4 connected to Zwift cannot participate in leaderboards because of that, and the calibration is especially true now that I offer calibration override) and that would result in unfair KOM and CR take downs.

A better solution would be to have one pick for each major European countries, each US Sates and each Canadian provinces. That would be way more work!

MrCsabaToth commented 3 years ago

Switzerland advised locations by Christian: CH52+VG Zürich bike 38C8+9M Ebikon lake

MrCsabaToth commented 3 years ago

Ok, the first one is the "Offene Rennbahn Oerlikon, Thurgauerstrasse 2, 8050 Zürich, Switzerland" unfortunately not NS oriented. Second one is Rotsee in Ebikon, https://www.google.com/maps/dir/47.0745405,8.3163423/38C8%2B9M+Ebikon,+Switzerland/@47.0712975,8.3139028,16.75z/data=!4m6!4m5!1m0!1m3!2m2!1d8.3166875!2d47.0709375 that may not be large enough NS wise? I need to measure.

MrCsabaToth commented 3 years ago

199 added time zone selection

MrCsabaToth commented 2 years ago

Problem for Kurt Ramsey as well.

MrCsabaToth commented 2 years ago

Basically any candidate track or flat surface should be:

  1. N-S oriented, very precisely
  2. There's no bike segment in case of bike, no run segment in case of run.
  3. Measure on Google Earth what's the lat lon size of 1m in N-S and E-W direction. By measuring the lat lon size and also m along the full height of and full width of the track
MrCsabaToth commented 2 years ago

Note for Fresno: the Fresno Fairground has a huge NS directed loop, looks like it might be 2 miles+ long: 36.732526,-119.7494397 (https://www.google.com/maps/place/36%C2%B043'57.1%22N+119%C2%B044'50.1%22W/@36.732526,-119.7494397,899m/data=!3m2!1e3!4b1!4m23!1m16!4m15!1m6!1m2!1s0x8094682625d0b359:0x66c4f1eb5d6d15!2s8680+N+Glenn+Ave,+Fresno,+CA+93711,+USA!2m2!1d-119.7929048!2d36.8626074!1m6!1m2!1s0x80945e50cdebdd6d:0x18a150462a12c72b!2sThe+Big+Fresno+Fair,+1121+S+Chance+Ave,+Fresno,+CA+93702!2m2!1d-119.7510773!2d36.7304347!3e0!3m5!1s0x0:0x67dffedba9b3fca5!7e2!8m2!3d36.732526!4d-119.7472508). Better suitable for a bike track than a 400m running track at Hoover High.

MrCsabaToth commented 2 years ago

This track at the Fresno Fairground is the Brian I Tatarian Grandstand, normally a horse race track: https://www.fresnofair.com/p/other/venue-spaces/brian-i-tatarian-grandstand Sounds like it's a mile long track: https://www.race-track.info/big-fresno-fair-horseracing.html

MrCsabaToth commented 1 year ago

Firdhaus Nawawi requests as well

MrCsabaToth commented 1 year ago

I have a per time zone list now (still need to measure GPS distances though): locations.txt

However the current https://pub.dev/packages/flutter_timezone package is only good for obtaining a the current time zone's name. We need to step up our game and manipulate time zones with https://pub.dev/packages/timezone or https://pub.dev/packages/flutter_native_timezone_updated_gradle (sign of abandonment and resurrection already). These https://pub.dev/packages/worldtime requires network connection because it uses a free and public API, so not good for off-line use (which some of my users have for sure).

The rest is working from an off-line database which is embedded, or exposed. Like https://pub.dev/packages/timezone contains instructions how to update the DB, and even has a 10y option for a more compact DB.