Skills ncloud-maps
Query Naver Cloud Maps APIs for route navigation. Smart routing: Directions5 by default, auto-switches to Directions15 for 5+ waypoints.
git clone https://github.com/openclaw/skills
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/beomsu317/ncloud-maps" ~/.claude/skills/clawdbot-skills-ncloud-maps && rm -rf "$T"
skills/beomsu317/ncloud-maps/SKILL.mdPrompt
When a user requests a route calculation with addresses or coordinates, use this skill to calculate driving time, distance, and cost.
Usage:
/skill ncloud-maps <start> <goal> [waypoints]- Start and goal must be in
format OR addresses (convert using goplaces/naver-local-search first)longitude,latitude - Returns: distance, duration, toll fare, taxi fare, fuel cost
Examples:
(coordinates)/skill ncloud-maps "126.9633,37.5524" "127.0165,37.4889"
(addresses - requires geocoding skill first)/skill ncloud-maps 아현역 서초역
Ncloud Maps
Query Naver Cloud Maps APIs for intelligent routing (Directions5 + Directions15).
Key Feature: Smart Routing
v1.0.8+ — By default, the skill uses Directions5 for queries with fewer than 5 waypoints, and automatically switches to Directions15 when you have 5 or more waypoints. No manual selection needed.
| Waypoints | API Used | Max Waypoints |
|---|---|---|
| 0–4 | Directions5 | 5 |
| 5+ | Directions15 | 15 |
Setup
-
Get API credentials from Naver Cloud Console:
- Create/register an Application in Naver Cloud Console
- Obtain
(API Key ID) andClient ID
(API Key)Client Secret - Enable "Maps Directions15" API
-
Set environment variables (or use .env file):
export NCLOUD_API_KEY_ID="your-api-key-id" export NCLOUD_API_KEY="your-api-key-secret"
Or create a
.env file:
NCLOUD_API_KEY_ID=your-api-key-id NCLOUD_API_KEY=your-api-key-secret
- Install dependencies:
cd ~/.openclaw/workspace/skills/ncloud-maps npm install
Usage
Using with Address-to-Coordinate Skills
ncloud-maps requires coordinates in
longitude,latitude format. If you have address-based location data, use one of these compatible skills to convert addresses to coordinates:
Available Options (choose based on your environment):
| Skill | Provider | Coordinates | Setup Required |
|---|---|---|---|
| Google Places API | Yes (lon,lat) | |
| Naver Local Search | Yes (lon,lat) | , |
| Custom API | Your choice | Yes (lon,lat) | Your setup |
Example workflow with goplaces:
# Get coordinates from address COORDS=$(goplaces resolve "강남역, 서울" --json | jq -r '.places[0] | "\(.location.longitude),\(.location.latitude)"') # Use coordinates with ncloud-maps npx ts-node scripts/index.ts --start "$COORDS" --goal "127.0049,37.4947"
Example workflow with naver-local-search:
# Get coordinates from address COORDS=$(naver-local-search search "강남역" --format json | jq -r '.[0] | "\(.x),\(.y)"') # Use coordinates with ncloud-maps npx ts-node scripts/index.ts --start "$COORDS" --goal "127.0049,37.4947"
Or integrate any other geocoding service that returns
longitude,latitude coordinates.
Smart Routing (Default Behavior)
By default, no
--api flag needed. The skill automatically:
- Uses Directions5 for 0–4 waypoints (faster)
- Switches to Directions15 for 5+ waypoints (necessary)
Provide coordinates in
longitude,latitude format:
# 0–4 waypoints → Directions5 (automatic) npx ts-node scripts/index.ts \ --start "127.0683,37.4979" \ --goal "126.9034,37.5087" \ --waypoints "127.0100,37.5000|127.0200,37.5100" # 5+ waypoints → Directions15 (automatic) npx ts-node scripts/index.ts \ --start "127.0683,37.4979" \ --goal "126.9034,37.5087" \ --waypoints "127.0100,37.5000|127.0200,37.5100|127.0300,37.5200|127.0400,37.5300|127.0500,37.5400"
Basic route query by coordinates (direct)
npx ts-node scripts/index.ts \ --start "127.0683,37.4979" \ --goal "126.9034,37.5087"
Force specific API (optional)
If you need to override the smart routing:
# Force Directions5 (max 5 waypoints) npx ts-node scripts/index.ts \ --start "127.0683,37.4979" \ --goal "126.9034,37.5087" \ --api directions5 \ --waypoints "127.0100,37.5000|127.0200,37.5100" # Force Directions15 (max 15 waypoints) npx ts-node scripts/index.ts \ --start "127.0683,37.4979" \ --goal "126.9034,37.5087" \ --api directions15 \ --waypoints "127.0100,37.5000|127.0200,37.5100|127.0300,37.5200|127.0400,37.5300|127.0500,37.5400"
With waypoints (coordinates only)
npx ts-node scripts/index.ts \ --start "127.0683,37.4979" \ --goal "126.9034,37.5087" \ --waypoints "127.0100,37.5000"
Multiple waypoints:
npx ts-node scripts/index.ts \ --start "127.0683,37.4979" \ --goal "126.9034,37.5087" \ --waypoints "127.0100,37.5000|127.0200,37.5100"
Route options
Choose from:
trafast (fast), tracomfort (comfort), traoptimal (default), traavoidtoll (toll-free), traavoidcaronly (avoid car-only roads)
npx ts-node scripts/index.ts \ --start "127.0683,37.4979" \ --goal "126.9034,37.5087" \ --option "traavoidtoll"
Vehicle and fuel settings
npx ts-node scripts/index.ts \ --start "127.0683,37.4979" \ --goal "126.9034,37.5087" \ --cartype 2 \ --fueltype "diesel" \ --mileage 10.5
Vehicle types:
(default): Small sedan1
: Medium van/cargo2
: Large vehicle3
: 3-axle cargo truck4
: 4+ axle special cargo5
: Compact car6
Fuel types:
gasoline (default), highgradegasoline, diesel, lpg
Output
{ "success": true, "start": "127.0683,37.4979", "goal": "126.9034,37.5087", "distance": 12850, "duration": 1145000, "toll_fare": 0, "taxi_fare": 18600, "fuel_price": 1550, "departure_time": "2026-02-21T14:10:00" }
Response Fields
- Whether the query succeededsuccess
- Starting point coordinatesstart
- Destination coordinatesgoal
- Total distance in metersdistance
- Total duration in milliseconds (÷1000 = seconds)duration
- Toll/highway fare in KRWtoll_fare
- Estimated taxi fare in KRWtaxi_fare
- Estimated fuel cost in KRWfuel_price
- Query timestampdeparture_time
- Error message (if success=false)error
How It Works
-
Address Resolution (Optional - any geocoding skill)
- Use any available skill that provides coordinates (goplaces, naver-local-search, etc.)
- Extract
format from the resultlongitude,latitude - Pass coordinates to ncloud-maps
-
Coordinate Validation
- Input: Coordinates in
format (direct input or from geocoding skill)longitude,latitude - Validates format and range
- Returns error if format is invalid
- Input: Coordinates in
-
Route Calculation (Directions15 or Directions5)
- Coordinates sent to appropriate Directions API
- Returns distance, duration, tolls, taxi fare, fuel cost
- Only for vehicle (car) routes — not for pedestrian or public transit
-
Waypoints Support
- Each waypoint must be in
formatlongitude,latitude - All coordinates sent to Directions API
- Each waypoint must be in
Limitations
⚠️ This skill only calculates vehicle (car) routes. It does not support:
- Public transportation (subway, bus, etc.)
- Walking routes
- Multi-modal journeys
- Transit-specific features (fare, stops, schedules)
For those use cases, use transit-specific APIs (e.g., Kakao Map, Naver Map Transit API).
Environment Variables
Required:
- Naver Cloud API Key IDNCLOUD_API_KEY_ID
- Naver Cloud API Key SecretNCLOUD_API_KEY
API Limits
Smart Routing:
- 0–4 waypoints: Directions5 API (max 5 waypoints)
- 5+ waypoints: Directions15 API (max 15 waypoints)
General:
- Real-time traffic information included
- Request rate limits apply per your Naver Cloud plan
Error Handling
Common errors:
- Invalid coordinate format (use좌표 형식 오류
)longitude,latitude
- Invalid API credentialsAuthentication Failed
- API rate limit hitQuota Exceeded
- No valid route between pointsNo routes found
Check Naver Cloud Console for:
- API enablement for your application
- Quota/rate limit status
- Valid coordinates
References
See api-spec.md for detailed API specifications.