Install
openclaw skills install sea-routeSea route navigation: generate the shortest maritime route between two ports or coordinates, output navigation waypoints and an interactive HTML map. Use when the user mentions sea route, shipping route, maritime navigation, port-to-port distance, 海运航线, 航线规划, 海上路线, 港口距离, 船运路线.
openclaw skills install sea-routeGenerate the shortest sea route between two points on the globe. Returns navigation waypoints (coordinates) and an interactive HTML map visualization.
This skill uses a Python script (scripts/sea_route.py) powered by the searoute library. It computes the shortest path over ocean, avoids land masses, and outputs:
./sea_route_map.html)The script uses uv for dependency management — no manual pip install needed.
The user may provide:
[117.75, 38.99])If the user provides city or port names, you MUST convert them to [longitude, latitude] coordinates yourself before calling the script. Use well-known port coordinates:
| Port | Longitude | Latitude |
|---|---|---|
| 天津港 (Tianjin) | 117.75 | 38.99 |
| 上海港 (Shanghai) | 121.47 | 31.23 |
| 大阪港 (Osaka) | 135.25 | 34.65 |
| 深圳港 (Shenzhen) | 114.27 | 22.55 |
| 香港 (Hong Kong) | 114.17 | 22.28 |
| 新加坡 (Singapore) | 103.85 | 1.29 |
| 鹿特丹 (Rotterdam) | 4.50 | 51.90 |
| 汉堡 (Hamburg) | 9.97 | 53.53 |
| 洛杉矶 (Los Angeles) | -118.27 | 33.73 |
| 纽约 (New York) | -74.04 | 40.67 |
| 迪拜 (Dubai) | 55.27 | 25.27 |
| 悉尼 (Sydney) | 151.21 | -33.87 |
| 釜山 (Busan) | 129.04 | 35.10 |
| 东京 (Tokyo) | 139.77 | 35.45 |
| 高雄 (Kaohsiung) | 120.29 | 22.61 |
For ports not listed above, look up reasonable coordinates for the port area.
Run with uv:
uv run --script /path/to/skills/sea-route/scripts/sea_route.py \
--origin-lon <LON> --origin-lat <LAT> \
--dest-lon <LON> --dest-lat <LAT> \
--origin-name "Port A" --dest-name "Port B" \
--output ./sea_route_map.html
Parameters:
| Flag | Required | Description |
|---|---|---|
--origin-lon | Yes | Origin longitude |
--origin-lat | Yes | Origin latitude |
--dest-lon | Yes | Destination longitude |
--dest-lat | Yes | Destination latitude |
--origin-name | No | Display name for origin (default: "Origin") |
--dest-name | No | Display name for destination (default: "Destination") |
--output | No | Output HTML file path (default: ./sea_route_map.html) |
The script prints a JSON object to stdout with this structure:
{
"origin": {"name": "Tianjin", "lon": 117.75, "lat": 38.99},
"destination": {"name": "Osaka", "lon": 135.25, "lat": 34.65},
"distance_km": 1891,
"duration_hours": 42.5,
"waypoints": [
{"seq": 1, "lon": 118.1725, "lat": 38.7726},
...
],
"html_map": "./sea_route_map.html"
}
Present to the user:
If the user wants to see the map:
open ./sea_route_map.html # macOS
xdg-open ./sea_route_map.html # Linux
User: 帮我生成从天津到大阪的海运航线
Agent:
uv run --script ~/.agents/skills/sea-route/scripts/sea_route.py \
--origin-lon 117.75 --origin-lat 38.99 \
--dest-lon 135.25 --dest-lat 34.65 \
--origin-name "天津港" --dest-name "大阪港" \
--output ./tianjin_osaka_route.html
searoute library generates approximate maritime routes suitable for visualization and distance estimation. It is NOT intended for real navigation.[longitude, latitude] order (GeoJSON convention).uv to be installed. It uses inline script dependencies — no virtual environment setup needed.