release 1.0.0

This commit is contained in:
deng
2025-12-03 09:06:10 +08:00
parent 06261a80be
commit 74e1d96600
7 changed files with 148 additions and 7 deletions

3
.gitignore vendored
View File

@ -9,4 +9,5 @@ wheels/
# Virtual environments # Virtual environments
.venv .venv
*.tar *.tar
RELEASE_CHECKLIST.md

134
CHANGELOG.md Normal file
View File

@ -0,0 +1,134 @@
# 更新紀錄
## [1.0.0] - 2025-12-03
### 🎉 首次正式發布
歡迎使用**山山登山小助手** v1.0.0!這是第一個穩定版本,提供完整的登山路線分析與天氣查詢功能。
---
## ✨ 新功能
### 📊 路線分析
上傳您的 GPX 檔案,立即獲得詳細的路線資訊:
- **基本統計**
- 📏 總距離
- ⬆️ 累積爬升
- ⬇️ 累積下降
- 🏔️ 最高/最低海拔
- ⏱️ 預估行進時間
- **智慧計算**
- 自動過濾 GPS 雜訊,提供更準確的爬升/下降數據
- 根據路線距離與爬升,智慧估算所需時間
- 支援自訂行進速度參數
### 🗺️ 互動式地圖
輕鬆查看完整路線與重要地標:
- **雙地圖切換**
- 🌍 OpenStreetMap - 適合查看周邊設施
- 🗻 魯地圖 - 等高線地圖,適合登山路線規劃
- **清楚標示**
- 🔵 起點終點:顯示座標與海拔
- 🟠 航點標記:自動顯示 GPX 檔案中的所有航點(如山屋、水源、岔路等)
- 🔴 路線軌跡:完整呈現登山路徑
- **互動功能**
- 點擊航點查看名稱與海拔
- 縮放與拖曳地圖
- 自由切換地圖圖層
### 📈 視覺化圖表
一目了然的路線特性:
- **海拔剖面圖**
- 互動式圖表,滑鼠移動即顯示該點資訊
- 清楚呈現整段路線的海拔變化
- 幫助識別陡峭路段與平緩路段
- **坡度分析圓餅圖**
- 依坡度分為:平緩、緩坡、陡坡、急坡
- 快速了解路線難度分布
### 🌤️ 天氣預報
出發前掌握天氣狀況,避免遇到惡劣天候:
- **7 天天氣預報**
- 🌡️ 溫度:最高/最低/體感溫度
- 💧 濕度:相對濕度
- 🌧️ 降雨:降雨機率與預估雨量
- 💨 風況:風速與風向(附安全等級指標 🟢🟡🟠🔴)
- ☀️ UV 指數:附等級指標(🟢🟡🟠🔴🟣)
- 🌅 日出/日落時間
- **日期選擇**
- 點選任一日期查看詳細天氣
- 方便規劃多日行程
### 🏔️ 安全提醒
貼心的登山安全提示:
- **高山症警示**
- 當路線海拔較高超過2100公尺提醒登山者注意高山症風險
- 附上高山症預防資訊連結,幫助登山者提早準備與注意
### 🎨 使用體驗
簡潔的介面設計:
- ✨ 臺灣山岳背景(南湖圈谷)
- 📱 響應式設計,支援電腦、手機
- ⚡ 快速載入
---
## 💡 使用提示
1. **GPX 檔案來源**
- 可從健行筆記、Hikingbook 等網站下載
- 也可使用登山 GPS App 記錄的航跡
2. **最佳使用方式**
- 載入路線 GPX 檔,搭配海拔剖面圖,規劃每日行程與體力分配
- 出發前一天查看天氣預報,注意溫度、降雨機率與 UV 指數,準備適當裝備
3. **注意事項**
- 預估時間僅供參考,請依個人體能調整
- 山區天氣變化快,仍需隨時注意實際天氣狀況
- 行經高海拔地區,請留意高山症症狀
---
## 🙏 感謝使用
感謝您使用山山登山小助手!如果有任何建議或問題,歡迎回饋(<gt810034@gmail.com>)。
祝您登山愉快,平安歸來!🏔️
---
## 📝 技術資訊
**適用環境**
- 瀏覽器Chrome、Firefox、Safari建議使用最新版本
- 裝置:桌機、筆電、平板、手機
**檔案限制**
- 支援標準 GPX 格式
- 檔案大小上限30 MB
**資料來源**
- 天氣資料Open-Meteo API
- 地圖圖層OpenStreetMap、魯地圖
---
更新日期2025-12-03

View File

@ -47,5 +47,5 @@ EXPOSE 8800
CMD ["python", "-m", "streamlit", "run", "app.py"] CMD ["python", "-m", "streamlit", "run", "app.py"]
# Build # Build
# docker build --platform=linux/amd64 -t hiking_assistant:latest . # docker build --platform=linux/amd64 -t hiking_assistant:1.0.0 .
# docker save -o hiking_assistant.tar hiking_assistant:latest # docker save -o hiking_assistant.tar hiking_assistant:1.0.0

View File

@ -180,7 +180,7 @@ class HikingAssistant:
route_map = map_renderer.create_route_map(all_points, start_point, end_point, waypoints) route_map = map_renderer.create_route_map(all_points, start_point, end_point, waypoints)
if route_map: if route_map:
st_folium(route_map, width=None, height=500, key='route_map', returned_objects=[]) st_folium(route_map, width=None, height=self._config['app']['map']['height'], key='route_map', returned_objects=[])
else: else:
st.error('無法渲染地圖') st.error('無法渲染地圖')
@ -336,7 +336,10 @@ class HikingAssistant:
# [Block3] # [Block3]
# Footer # Footer
st.divider() st.divider()
footer_text = f'<div style="text-align:center; font-size: 0.8em"><p>{self._config["app"]["page_footer_text"]}</p></div>' footer_text = (
f'<div style="text-align:center; font-size: 0.8em">'
f'<p>{self._config["app"]["page_footer_text"]}<br>v{self._config["app"]["version"]}</p></div>'
)
st.markdown(footer_text, unsafe_allow_html=True) st.markdown(footer_text, unsafe_allow_html=True)

View File

@ -1,4 +1,5 @@
app: app:
version: 1.0.0
page_title: 山山登山小助手 page_title: 山山登山小助手
page_favicon_path: ./assets/new_favicon.webp page_favicon_path: ./assets/new_favicon.webp
page_footer_text: ⚠️ 本服務提供之資訊僅供規劃參考,山區氣候瞬息萬變,請務必依據現場狀況與自身能力進行風險評估<br>Made with ❤️ by <a href="https://gitea.guineapig.love/deng">deng</a> page_footer_text: ⚠️ 本服務提供之資訊僅供規劃參考,山區氣候瞬息萬變,請務必依據現場狀況與自身能力進行風險評估<br>Made with ❤️ by <a href="https://gitea.guineapig.love/deng">deng</a>
@ -11,5 +12,7 @@ app:
estimated_time: estimated_time:
horizontal_speed: 3 horizontal_speed: 3
vertical_speed: 400 vertical_speed: 400
map:
height: 550
weather: weather:
forecast_days: 7 forecast_days: 7

View File

@ -1,6 +1,6 @@
[project] [project]
name = "hiking-assistant" name = "hiking-assistant"
version = "0.1.0" version = "1.0.0"
description = "This is a web app to analyze gpx for hiking planning" description = "This is a web app to analyze gpx for hiking planning"
readme = "README.md" readme = "README.md"
requires-python = ">=3.13" requires-python = ">=3.13"

2
uv.lock generated
View File

@ -227,7 +227,7 @@ wheels = [
[[package]] [[package]]
name = "hiking-assistant" name = "hiking-assistant"
version = "0.1.0" version = "1.0.0"
source = { virtual = "." } source = { virtual = "." }
dependencies = [ dependencies = [
{ name = "folium" }, { name = "folium" },