@GoSailGlobal: Chinese AI Agents Most Lack the Ability to Access Local Real Data. Amap just opened a door: amap-lbs-skill, adapted for OpenClaw platform, MIT license, 9 stars, packages five things: POI search, route planning (walking/driving/cycling/bus…)
Summary
Amap officially released amap-lbs-skill, an open-source toolkit (MIT license) adapted for the OpenClaw platform, providing five types of map data services including POI search, route planning, and trip planning, enabling AI Agents to directly call real local geographic data in China and output visual map links.
View Cached Full Text
Cached at: 05/23/26, 12:10 PM
The most lacking capability for AI Agents in the Chinese market right now is the ability to access real local data. AMap (Gaode Maps) has just opened a gateway: amap-lbs-skill, adapted for the OpenClaw platform, MIT license, with 9 stars. It packs five capabilities:
- POI search
- Route planning (walking/driving/cycling/public transit)
- Intelligent travel planner
- Nearby search
- Heatmap data visualization
The invocation follows the Skill standard format: SKILL.md, scripts/, index.js — just configure an AMap Web Service Key and it runs. Any Agent that uses the Claude Skill or OpenClaw Skill interface can connect directly. Another major Chinese tech company has stepped into providing Skill integrations.
Those five capabilities, when connected to an Agent, enable real-world scenarios:
- POI search → “List all Michelin restaurants in Shanghai”, “Top 10 cafes near 798”, “How many pediatric hospitals within 1km of my home?”
- Route planning → “Visit 5 clients in Beijing tomorrow, optimize route by shortest time”, “Best route for a one-day West Lake tour without getting tired”, “From Pudong airport to The Bund, driving vs subway — which is faster?”
- Intelligent travel planner → “3-day trip in Chengdu, give me attractions + food + route + map links”, “48-hour Tokyo weekend, budget ¥5000, create itinerary”
- Nearby search → “Any convenience stores within 500m of the hotel?”, “Nearest EV charging station to my current location”, “A café near the meeting room that allows drive-in”
- Heatmap visualization → “Generate a heatmap of pet hospitals in Shanghai”, “Plot customer data on map to see which area has highest sales density”, “Highlight top 10 neighborhoods by convenience store density”
Combined, these five capabilities mean one thing: AI Agents in mainland China can finally “get things done” and produce visual results. Travel guides upgrade from plain text to visual map links with POIs and routes, ready to share.
http://github.com/AMap-Web/amap-lbs-skill…
AMap-Web/amap-lbs-skill
Source: https://github.com/AMap-Web/amap-lbs-skill
AMap LBS Skill
AMap LBS Skill provides developers with comprehensive map data services, including location search, route planning, travel planning, and data visualization.
Features
- ✅ Automatic AMap Web Service Key management
- ✅ POI search
- ✅ Route planning (walking, driving, cycling, public transit)
- ✅ Intelligent travel planner
- ✅ Map visualization link generation
- ✅ Heatmap data visualization
- ✅ Command-line script execution
- ✅ Persistent local configuration
Install dependencies
npm install
Configure API Key
You need to configure an AMap Web Service Key on first use:
# Method 1: via environment variable at runtime
export AMAP_WEBSERVICE_KEY=your_key
node scripts/poi-search.js --keywords=KFC --city=Beijing
# Method 2: runtime prompt to input (saved to config.json)
node scripts/poi-search.js --keywords=KFC --city=Beijing
# Method 3: manually create configuration file
cp config.example.json config.json
# then edit config.json and fill in your Key
Get API Key: Visit the AMap Open Platform (https://lbs.amap.com/api/webservice/create-project-and-key) to create an application and obtain a Key.
Usage
1. POI Search
# Basic search
node scripts/poi-search.js --keywords=KFC --city=Beijing
# Search with more parameters
node scripts/poi-search.js --keywords=Restaurant --city=Shanghai --page=1 --offset=20
# Nearby search (requires center point coordinates and radius)
node scripts/poi-search.js --keywords=Hotel --location=116.397428,39.90923 --radius=1000
2. Route Planning
# Walking route
node scripts/route-planning.js --type=walking --origin=116.397428,39.90923 --destination=116.427281,39.903719
# Driving route (with waypoints)
node scripts/route-planning.js --type=driving --origin=116.397428,39.90923 --destination=116.427281,39.903719 --waypoints=116.410000,39.910000
# Cycling route
node scripts/route-planning.js --type=riding --origin=116.397428,39.90923 --destination=116.427281,39.903719
# Public transit route
node scripts/route-planning.js --type=transfer --origin=116.397428,39.90923 --destination=116.427281,39.903719 --city=Beijing
3. Intelligent Travel Planner
# Basic travel planning
node scripts/travel-planner.js --city=Beijing --interests=Attractions,Food,Hotels
# Specify route type
node scripts/travel-planner.js --city=Hangzhou --interests=West Lake,Food,Tea House --routeType=walking
# Driving tour
node scripts/travel-planner.js --city=Shanghai --interests=The Bund,Nanjing Road,Chenghuang Temple --routeType=driving
4. Use in Code
const { searchPOI, walkingRoute, drivingRoute, travelPlanner, generateMapLink } = require('./index');
// POI Search
async function searchExample() {
const result = await searchPOI({ keywords: 'KFC', city: 'Beijing', page: 1, offset: 10 });
console.log(result);
}
// Walking route planning
async function routeExample() {
const result = await walkingRoute({ origin: '116.397428,39.90923', destination: '116.427281,39.903719' });
console.log(result);
}
// Travel planning
async function travelExample() {
const result = await travelPlanner({ city: 'Beijing', interests: ['Attractions', 'Food', 'Hotels'], routeType: 'walking' });
console.log(result.mapLink); // Map visualization link
}
// Generate map link
function mapLinkExample() {
const mapData = [
{ type: 'poi', lnglat: [116.397428, 39.90923], sort: 'Scenic Spot', text: 'Forbidden City', remark: 'Imperial palace of Ming and Qing dynasties' },
{ type: 'route', routeType: 'walking', start: [116.397428, 39.90923], end: [116.427281, 39.903719], remark: 'Walking route' }
];
const link = generateMapLink(mapData);
console.log(link);
}
API Parameter Description
POI Search Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| keywords | string | Yes | Search keyword |
| city | string | No | City name or city code |
| types | string | No | POI type code, separate multiple with | |
| location | string | No | Center point coordinates (longitude,latitude) |
| radius | number | No | Search radius in meters |
| page | number | No | Current page number, default 1 |
| offset | number | No | Records per page, default 10, max 25 |
Route Planning Parameters
Walking Route (walkingRoute)
| Parameter | Type | Required | Description |
|---|---|---|---|
| origin | string | Yes | Start coordinates “longitude,latitude” |
| destination | string | Yes | End coordinates “longitude,latitude” |
Driving Route (drivingRoute)
| Parameter | Type | Required | Description |
|---|---|---|---|
| origin | string | Yes | Start coordinates “longitude,latitude” |
| destination | string | Yes | End coordinates “longitude,latitude” |
| waypoints | string | No | Waypoints, separate multiple with ;, max 16 |
| strategy | number | No | Driving strategy, default 10 (avoid congestion) |
Cycling Route (ridingRoute)
| Parameter | Type | Required | Description |
|---|---|---|---|
| origin | string | Yes | Start coordinates “longitude,latitude” |
| destination | string | Yes | End coordinates “longitude,latitude” |
Public Transit Route (transitRoute)
| Parameter | Type | Required | Description |
|---|---|---|---|
| origin | string | Yes | Start coordinates “longitude,latitude” |
| destination | string | Yes | End coordinates “longitude,latitude” |
| city | string | Yes | City name or city code |
| strategy | number | No | Transit strategy, 0-5, default 0 (fastest) |
| nightflag | boolean | No | Whether to include night buses, default false |
Travel Planner Parameters (travelPlanner)
| Parameter | Type | Required | Description |
|---|---|---|---|
| city | string | Yes | City name |
| interests | array | No | Array of interest keywords, default [‘Attractions’,‘Food’] |
| routeType | string | No | Route type: walking/driving/riding/transfer, default walking |
Project Structure
jsapi-skills/
├── index.js # Main entry file, core functions
├── scripts/
│ ├── poi-search.js # POI search script
│ ├── route-planning.js # Route planning script
│ └── travel-planner.js # Intelligent travel planner script
├── config.json # Configuration file (auto-generated, do not commit)
├── config.example.json # Configuration example
├── package.json # Dependency configuration
├── .gitignore # Git ignore configuration
├── SKILL.md # OpenClaw Skill description file
└── README.md # This file
Map Visualization
All planning results generate a map visualization link in the following format:
https://a.amap.com/jsapi_demo_show/static/openclaw/travel_plan.html?data=
The data format follows the MapTaskData interface specification, supporting:
- POI tasks: display point of interest locations and information
- Route tasks: display route planning results
Example data structure:
[
// POI point of interest
{
type: 'poi',
lnglat: [116.397428, 39.90923],
sort: 'Scenic Spot',
text: 'Forbidden City',
remark: 'Imperial palace of Ming and Qing dynasties, formerly known as the Forbidden City.'
},
// Route planning
{
type: 'route',
routeType: 'walking',
start: [116.397428, 39.90923],
end: [116.427281, 39.903719],
remark: 'Walking route'
}
]
Notes
- Keep your Web Service Key secure; do not commit it to public repositories.
config.jsonis already in.gitignoreand will not be committed.- AMap Web Service API has call frequency limits; use reasonably.
- Free users have daily call limits; see the AMap Open Platform documentation for details.
Related Links
- AMap Open Platform (https://lbs.amap.com/)
- Create application and get Key (https://lbs.amap.com/api/webservice/create-project-and-key)
- POI Search API documentation (https://lbs.amap.com/api/webservice/guide/api-advanced/newpoisearch)
- Web Service API overview (https://lbs.amap.com/api/webservice/summary)
License
MIT
Jason Zhu (@GoSailGlobal):
That’s quite somethingAlibaba’s AMap (Gaode Maps), someone actually submitted amap-lbs-skill to my little site
Two of the three submitted projects were accepted:
☑️ https://t.co/0V34mJKxgc
☑️ https://t.co/XluGaMH5Ay
❌
Similar Articles
@GoSailGlobal: https://x.com/GoSailGlobal/status/2059101718957166684
A GitHub project called AI Engineering (with 18.7k stars) aims to help users improve their practical application skills of AI tools, bridging the gap between usage rate and confidence.
@Yuancheng: ➤ New ideas and practices for Agent Harness are still emerging. Lately I came across **OpenSquilla**, an open-source, locally-hosted AI Agent. ① It features intelligent model routing—for the same task, token cost is 60-80% less than OpenClaw …
OpenSquilla is an open-source, locally-hosted AI Agent with intelligent model routing that allocates tasks among different models to save token costs, and introduces the MetaSkill mechanism to let the Agent automatically organize skills.
@oragnes: Wow, just dug up this amazing tool map3d on GitHub! Based on OpenStreetMap, you select an area on the web page, and it automatically fetches real building and road data, rendering a 3D city model with heights in one click! The craziest part is it can directly export GLB files for use in Blender or game engines…
Introduces two open-source tools on GitHub: map3d, which automatically generates 3D city models from OpenStreetMap and exports GLB files; and Voice-Pro, a local tool integrating video download, voice separation, subtitle recognition, translation, voice cloning dubbing, and video synthesis.
MapAgent: An Industrial-Grade Agentic Framework for City-scale Lane-level Map Generation
MapAgent is an industrial-grade agentic framework that combines vision-language processing with constraint-aware reasoning to automatically produce specification-compliant lane-level maps, achieving over 95% automation in Baidu Maps for more than 360 cities.
@GoSailGlobal: https://x.com/GoSailGlobal/status/2058455845243847068
This week saw a flurry of AI industry news, with the core trend being that all model labs are pivoting to Agent products: AI21 shuts down its model team, DeepSeek forms a Harness team and permanently cuts the price of V4-Pro; Coding Agents enter a weekly update cycle; the MCP protocol undergoes a major overhaul toward statelessness; Google launches an Agent family; in security, AI vulnerability discovery outpaces manual fixes by a wide margin.