Communitygithub.com

orodmorais/trip-map-3d

從對話中將任何旅程或行程轉換為一個包含真實地形、每日路線和天氣的互動式 3D 地圖網站。

trip-map-3d 是什麼?

這個技能允許使用者透過對話直接建立一個功能完整的 3D 地圖網站來展示旅程。它能夠處理任何目的地,並從一個 `trip.yaml` 檔案自動生成多個區域的 3D 地圖、每日動畫路線、地點標記、資訊卡、天氣資訊,甚至支援離線瀏覽。此工具專為 Claude Code 等 AI 代理設計,特別適合用於旅遊規劃、部落格、活動展示,或任何希望以沉浸式 3D 方式視覺化旅行路線的場景。支援的平台包括 GitHub Pages,但需注意其使用限制:不允許使用公開的 Nominatim API(因其政策禁止此類用途),且免費的 Open-Meteo API 僅限非商業使用。使用者需手動確認每個地點的地理編碼結果,因為自動查詢可能出錯。運作方式是先透過對話收集行程細節,接著建立結構化的 `trip.yaml` 檔案,然後進行建置與審查,最後在獲得使用者許可後發布到公開的 GitHub 儲存庫。

相容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/orodmorais/trip-map-3d/tree/HEAD

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

trip-map-3d 是做什麼的?

將旅程轉變為一個網站:每個區域都有真實的 3D 地圖、每日一條動畫路線、圖釘、資訊卡、天氣支援以及離線功能。所有內容都來自一個檔案:trip.yaml。

1. 詢問旅程細節

針對你缺少的資訊,一次問幾個問題:

  • 地點、時間以及總天數。
  • 每天:他們計畫做什麼,以及順序為何。僅需提供名稱即可。
  • 住宿地點。請先提醒他們,網站會放在免費的 GitHub 帳號上,因此提供鄰近區域名稱就足夠。除非他們在收到提醒後仍堅持,否則請勿寫下街道地址。
  • 語言(en、pt-BR、es)與單位。
  • 選填:衝浪點、潮汐、照片、主題。

照片必須是他們自己的或已獲得授權的照片。請勿為他們從網際網路下載照片。

2. 編寫 trip.yaml

請遵循 examples/trip.example.yaml。只有 title、dates.start 和 days 是必填欄位。請務必在地點名稱中加入城市名稱,例如 "Pantheon, Roma",而不是 "Pantheon"。

3. 建置與審查

python -m pip install -r requirements.txt
python -m pipeline check trip.yaml

逐行與使用者一起閱讀報告。地理編碼器可能會自信地給出錯誤結果,因此請向他們展示找到的每個地點。任何標記為 CHECK 的行都需要檢查。如果某個地點錯誤或遺失,請在 places: 中添加 lat 和 lon,而不是重新嘗試搜尋。

然後進行建置:

python -m pipeline build trip.yaml --out dist
python -m pip install -r requirements-dev.txt
python tools/check_site.py dist --shots shots --hashes "" dia-1

在確認運作正常之前,請先打開截圖查看。檢查每個地點是否都已顯示、沒有路線位於資訊卡下方,並且沒有列印出任何錯誤。

4. 僅在使用者確認後才發布

請確認儲存庫名稱以及它將會是公開的。然後:

  1. 推送到從此範本建立的儲存庫。
  2. 在「設定」->「Pages」中,將「來源」設定為「GitHub Actions」。此步驟需手動完成。
  3. 工作流程會在建置後發布,每次推送都會觸發。

規則

  • 公共服務是共享的。請勿對其進行迴圈呼叫。trip.lock.json 會保存每次的答案:請提交它,並且絕不要為了重試而刪除它。
  • 本專案不使用公開的 Nominatim API。其政策禁止將其像本工具一樣作為通用地理編碼器內建。如果使用者要求使用 Nominatim,請引導他們參閱使用政策以及 services.geocoder 以獲取他們自己的實例。
  • 免費的 Open-Meteo API 僅供非商業使用。旅行社需要付費金鑰:請設定 services.open_meteo_key。
  • 請在網站中保留資料來源資訊。這是法律要求的(請參閱 DATA_SOURCES.md)。

相關技能