前言¶
大模型在處理球面幾何問題時經常出現計算錯誤,例如混淆經緯度順序、忘記角度與弧度的轉換、將球面多邊形按平面處理等。dsh-geodesy 插件將這些計算邏輯從模型推理中剝離,作爲本地確定的工具直接調用,提供精確的球面幾何結果。
核心能力¶
該插件提供七項核心功能,全部運行在本地且零運行時依賴:
- 大圓距離:使用 Haversine 公式計算兩點間距離,並返回初始/最終方位角及 16 方位羅盤方向。
- 方位角與中點:計算兩點間的初始和最終大圓方位角,以及大圓路徑的中點。
- 目的地推算:根據起點、方位角和距離推算終點,包含往返距離校驗。
- 座標解析:解析並驗證座標字符串(十進制度、DMS 格式、後綴、座標對等),轉換爲十進制度數。
- 恆向線計算:計算等角航線(羅盤等角航線)的距離和方位,並對比大圓距離。
- 路徑交點:計算兩條大圓路徑的交點,報告最近交點、對蹠點交點及從起點出發的距離。
- 球面多邊形面積:利用球面角盈(Girard 定理)計算球面多邊形的面積和周長。
安裝¶
在安裝前,請確保系統環境已安裝 pnpm 並將其加入 PATH。
執行以下命令安裝插件:
dsh plugin --profile web add github:TYEclipse/dsh-geodesy
安裝完成後,需要重啓對應 profile 的服務(例如 dsh restart web)。
使用示例¶
向 DeepSeek Harness 提問涉及地球表面幾何的問題,模型會自動調用上述工具。
距離與方位
“What is the great-circle distance from Beijing to Shanghai?”
座標解析
“Parse 37°46′30″N, 122°25′8.4″W into decimal degrees.”
恆向線與對比
“How far do I sail from (45°N, 0°) to (45°N, 90°) at a constant heading, and how much longer is that than the great circle?”
路徑交點
“Where does the flight corridor starting at (0, 0) heading due east cross the one starting at (0, 90) heading due north?”
球面面積
“What is the area of the triangle (0,0), (0,90), (90,0) on the sphere?”
配置與說明¶
地球半徑
所有計算默認使用 IUGG 平均地球半徑 6371.0088 km。該參數可在插件配置中調整,例如用於月球或行星計算。
配置項示例:
plugins:
dsh-geodesy:
radiusKm: 6371.0088
輸入格式
座標輸入格式嚴格定義,支持十進制、DMS、後綴(N/S/E/W)及座標對。無效輸入會返回 valid: false 及原因。
許可協議
MIT。
總結¶
tyeclipse/dsh-geodesy 爲 DeepSeek Harness 提供了一套完整的本地球面幾何計算方案,適用於需要精確地理計算的場景,避免了模型自行推理帶來的不確定性。
目錄頁:catalog_url
GitHub 倉庫:github.com/TYEclipse/dsh-geodesy