KJ commited on
Commit ·
d6e0895
1
Parent(s): 29f2775
updating timestaps
Browse files
app.py
CHANGED
|
@@ -49,15 +49,25 @@ if not server.is_active:
|
|
| 49 |
MYSQL_URL = f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{LOCAL_BIND_HOST}:{MYSQL_PORT}/{MYSQL_DB}"
|
| 50 |
engine = create_engine(MYSQL_URL, pool_pre_ping=True, pool_recycle=3600)
|
| 51 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
# --- Time range selection ---
|
| 53 |
st.sidebar.header("Filter by Time Frame")
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
from_datetime = datetime.combine(start_date, start_time)
|
| 60 |
-
to_datetime = datetime.combine(end_date, end_time)
|
| 61 |
|
| 62 |
# --- Load GPS Data ---
|
| 63 |
def load_gps_data(from_ts, to_ts):
|
|
@@ -69,7 +79,9 @@ def load_gps_data(from_ts, to_ts):
|
|
| 69 |
st.error(f"Error loading GPS data: {e}")
|
| 70 |
return pd.DataFrame()
|
| 71 |
|
| 72 |
-
gps_data =
|
|
|
|
|
|
|
| 73 |
|
| 74 |
# --- Display on Google Maps ---
|
| 75 |
if not gps_data.empty:
|
|
@@ -173,4 +185,4 @@ if not gps_data.empty:
|
|
| 173 |
</script>
|
| 174 |
""", height=750)
|
| 175 |
else:
|
| 176 |
-
st.info("No GPS data available for selected time frame.")
|
|
|
|
| 49 |
MYSQL_URL = f"mysql+pymysql://{MYSQL_USER}:{MYSQL_PASSWORD}@{LOCAL_BIND_HOST}:{MYSQL_PORT}/{MYSQL_DB}"
|
| 50 |
engine = create_engine(MYSQL_URL, pool_pre_ping=True, pool_recycle=3600)
|
| 51 |
|
| 52 |
+
# --- Fetch timestamp range from DB ---
|
| 53 |
+
def get_timestamp_range():
|
| 54 |
+
try:
|
| 55 |
+
query = text("SELECT MIN(timestamp) as min_ts, MAX(timestamp) as max_ts FROM gps_points")
|
| 56 |
+
result = engine.execute(query).fetchone()
|
| 57 |
+
return result["min_ts"], result["max_ts"]
|
| 58 |
+
except Exception as e:
|
| 59 |
+
st.error(f"Error fetching timestamp range: {e}")
|
| 60 |
+
return None, None
|
| 61 |
+
|
| 62 |
+
min_ts, max_ts = get_timestamp_range()
|
| 63 |
+
|
| 64 |
# --- Time range selection ---
|
| 65 |
st.sidebar.header("Filter by Time Frame")
|
| 66 |
+
if min_ts and max_ts:
|
| 67 |
+
start_datetime = st.sidebar.datetime_input("Start", min_ts, min_value=min_ts, max_value=max_ts)
|
| 68 |
+
end_datetime = st.sidebar.datetime_input("End", max_ts, min_value=min_ts, max_value=max_ts)
|
| 69 |
+
else:
|
| 70 |
+
start_datetime = end_datetime = None
|
|
|
|
|
|
|
| 71 |
|
| 72 |
# --- Load GPS Data ---
|
| 73 |
def load_gps_data(from_ts, to_ts):
|
|
|
|
| 79 |
st.error(f"Error loading GPS data: {e}")
|
| 80 |
return pd.DataFrame()
|
| 81 |
|
| 82 |
+
gps_data = pd.DataFrame()
|
| 83 |
+
if start_datetime and end_datetime:
|
| 84 |
+
gps_data = load_gps_data(start_datetime, end_datetime)
|
| 85 |
|
| 86 |
# --- Display on Google Maps ---
|
| 87 |
if not gps_data.empty:
|
|
|
|
| 185 |
</script>
|
| 186 |
""", height=750)
|
| 187 |
else:
|
| 188 |
+
st.info("No GPS data available for selected time frame.")
|