{/* Trang này được tạo tự động từ SKILL.md của kỹ năng bởi website/scripts/generate-skill-docs.py. Chỉnh sửa nguồn SKILL.md, không phải trang này. */}
Bản đồ
Mã địa lý, POI, tuyến đường, múi giờ thông qua OpenStreetMap/OSRM.
Siêu dữ liệu kỹ năng
| Nguồn | Đi kèm (được cài đặt theo mặc định) |
| Đường dẫn |
skills/productivity/maps ` | | Phiên bản |
1.2.0 ` | | Tác giả | Mibayy | | Giấy phép | MIT | | Nền tảng | Linux, macOS, Windows | | Thẻ |
maps
, `geocoding
, `places
, `routing
, `distance
, `directions
, `nearby
, `location
, `openstreetmap
, `nominatim
, `overpass
,
osrm |
Tham khảo: đầy đủ SKILL.md
Sau đây là định nghĩa kỹ năng đầy đủ mà Hermes tải khi kỹ năng này được kích hoạt. Đây là những gì tác nhân coi là hướng dẫn khi kỹ năng được kích hoạt.
Kỹ năng bản đồ
Thông tin vị trí sử dụng các nguồn dữ liệu mở, miễn phí. 8 lệnh, 44 POI danh mục, không phụ thuộc (chỉ Python stdlib), không cần khóa API.
Nguồn dữ liệu: OpenStreetMap/Nominatim, Overpass API, OSRM, TimeAPI.io.
Kỹ năng này thay thế kỹ năng
find-nearby cũ - tất cả các kỹ năng tìm gần đó
chức năng được bao phủ bởi lệnh
nearby bên dưới, với cùng một chức năng
Phím tắt
--near "<place" ` và hỗ trợ nhiều danh mục.
Khi nào nên sử dụng
-
Người dùng gửi mã pin vị trí Telegram (vĩ độ/kinh độ trong tin nhắn) → `nearby
-
Người dùng muốn tọa độ cho tên địa điểm → `search
-
Người dùng có tọa độ và muốn có địa chỉ → `reverse
-
Người dùng hỏi các nhà hàng, bệnh viện, hiệu thuốc, khách sạn lân cận → `nearby
-
Người dùng muốn khoảng cách lái xe/đi bộ/đi xe đạp hoặc thời gian di chuyển → `distance
-
Người dùng muốn chỉ đường từng chặng giữa hai địa điểm → `directions
-
Người dùng muốn thông tin múi giờ cho một vị trí → `timezone
-
Người dùng muốn tìm kiếm POI trong một khu vực địa lý → `area
`bbox
Điều kiện tiên quyết
Python 3.8+ (chỉ stdlib - không cần cài đặt pip).
Đường dẫn tập lệnh:
~/.Hermes/skills/maps/scripts/maps_CLIent.py
Lệnh
MAPS=~/.Hermes/skills/maps/scripts/maps_CLIent.py
`
### tìm kiếm — Mã địa lý tên địa điểm
`bash
Python3 $MAPS search "Eiffel Tower"
Python3 $MAPS search "1600 Pennsylvania Ave, Washington DC"
`
``Trả về: lat, lon, tên hiển thị, loại, khung giới hạn, điểm quan trọng.
### đảo ngược — Tọa độ tới địa chỉ
`bash
Python3 $MAPS reverse 48.8584 2.2945
`
``Trả về: phân tích địa chỉ đầy đủ (đường, thành phố, tiểu bang, quốc gia, mã bưu điện).
### lân cận — Tìm địa điểm theo danh mục
`bash
# By coordinates (from a Telegram location pin, for example)
Python3 $MAPS nearby 48.8584 2.2945 restaurant --limit 10
Python3 $MAPS nearby 40.7128 -74.0060 hospital --radius 2000
# By address / city / zip / landmark — --near auto-geocodes
Python3 $MAPS nearby --near "Times Square, New York" --category cafe
Python3 $MAPS nearby --near "90210" --category pharmacy
# Multiple categories merged into one query
Python3 $MAPS nearby --near "downtown austin" --category restaurant --category bar --limit 10
`
``46 hạng mục: nhà hàng, cafe, bar, bệnh viện, hiệu thuốc, khách sạn, guest_house,
camp_site, siêu thị, atm, gas_station, bãi đậu xe, bảo tàng, công viên, trường học,
trường đại học, ngân hàng, cảnh sát, trạm cứu hỏa, thư viện, sân bay, ga xe lửa,
trạm xe buýt, nhà thờ, nhà thờ Hồi giáo, giáo đường Do Thái, nha sĩ, bác sĩ, rạp chiếu phim, nhà hát, phòng tập thể dục,
swim_pool, post_office, tiện_store, tiệm bánh, hiệu sách, giặt ủi,
car_wash, car_rental, Bicycle_rental, taxi, thú y, sở thú, sân chơi,
sân vận động, hộp đêm.
Mỗi kết quả bao gồm:
`name
,
`address
,
`lat
/
`lon
,
`distance_m
,
`maps_url
` (liên kết Google Maps có thể nhấp),
`directions_url
` (Google Maps
chỉ đường từ điểm tìm kiếm) và thẻ được quảng cáo khi có sẵn —
`cuisine
,
`hours
` (open_hours),
`phone
,
`website
.
### khoảng cách — Khoảng cách và thời gian di chuyển
``` bash
Python3 $MAPS distance "Paris" --to "Lyon"
Python3 $MAPS distance "New York" --to "Boston" --mode driving
Python3 $MAPS distance "Big Ben" --to "Tower Bridge" --mode walking
`
``Chế độ: lái xe (mặc định), đi bộ, đạp xe. Trả về khoảng cách đường, thời gian,
và khoảng cách đường thẳng để so sánh.
### chỉ đường — Điều hướng từng chặng
`bash
Python3 $MAPS directions "Eiffel Tower" --to "Louvre Museum" --mode walking
Python3 $MAPS directions "JFK Airport" --to "Times Square" --mode driving
`
``Trả về các bước được đánh số kèm theo hướng dẫn, khoảng cách, thời lượng, tên đường và
kiểu cơ động (rẽ, khởi hành, đến, v.v.).
### múi giờ — Múi giờ cho tọa độ
`bash
Python3 $MAPS timezone 48.8584 2.2945
Python3 $MAPS timezone 35.6762 139.6503
`
``Trả về tên múi giờ, độ lệch UTC và giờ địa phương hiện tại.
### vùng — Hộp giới hạn và vùng cho một địa điểm
`bash
Python3 $MAPS area "Manhattan, New York"
Python3 $MAPS area "London"
`
``Trả về tọa độ hộp giới hạn, chiều rộng/chiều cao tính bằng km và diện tích gần đúng.
Hữu ích làm đầu vào cho lệnh bbox.
### bbox — Tìm kiếm trong hộp giới hạn
`bash
Python3 $MAPS bbox 40.75 -74.00 40.77 -73.98 restaurant --limit 20
`
``Tìm POI trong một hình chữ nhật địa lý. Trước tiên hãy sử dụng
`area
` để nhận
tọa độ hộp giới hạn cho một địa điểm được đặt tên.
## Làm việc với Ghim vị trí trên Telegram
Khi người dùng gửi mã pin vị trí, tin nhắn chứa
`latitude:
` và
Các trường
`longitude:
. Giải nén chúng và chuyển thẳng đến
`nearby
:
`bash
# User sent a pin at 36.17, -115.14 and asked "find cafes nearby"
Python3 $MAPS nearby 36.17 -115.14 cafe --radius 1500
`
`Trình bày kết quả dưới dạng danh sách được đánh số với tên, khoảng cách và
Trường
`maps_url
` để người dùng nhận được liên kết nhấn để mở trong cuộc trò chuyện. Đối với “mở
bây giờ à?" câu hỏi, hãy kiểm tra trường
`hours
; nếu thiếu hoặc không rõ ràng, hãy xác minh
với
`web_search
` vì giờ OSM do cộng đồng duy trì và không phải lúc nào cũng
hiện tại.
## Ví dụ về quy trình làm việc`**"Tìm nhà hàng Ý gần Đấu trường La Mã":**
1.
`nearby --near "Colosseum Rome" --category restaurant --radius 500
- một lệnh, tự động mã hóa địa lý`**"Ghim vị trí họ đã gửi ở gần cái gì?":**
1. Trích xuất lat/lon từ tin nhắn Telegram
2.
`nearby LAT LON cafe --radius 1500
``**"Tôi đi bộ từ khách sạn đến trung tâm hội nghị bằng cách nào?":**
1.
`directions "Hotel Name" --to "Conference Center" --mode walking
``**"Có những nhà hàng nào ở trung tâm thành phố Seattle?":**
1.
`area "Downtown Seattle"
` → lấy hộp giới hạn
2.
`bbox S W N E restaurant --limit 30
## cạm bẫy
- Nominatim ToS: tối đa 1 req/s (được xử lý tự động bởi script)
-
`nearby
` yêu cầu lat/lon HOẶC
--near "<address"
- cần một trong hai
- Phạm vi định tuyến OSRM là tốt nhất cho Châu Âu và Bắc Mỹ
- API cầu vượt có thể bị chậm trong giờ cao điểm; kịch bản tự động
rơi trở lại giữa các gương (overpass-API.de → overpass.kumi.systems)
-
`distance
` và
`directions
` sử dụng cờ
--to
` cho đích (không phải vị trí)
- Nếu chỉ mã zip cho kết quả không rõ ràng trên toàn cầu, hãy bao gồm quốc gia/tiểu bang
## Xác minh
``` bash
Python3 ~/.Hermes/skills/maps/scripts/maps_CLIent.py search "Statue of Liberty"
# Should return lat ~40.689, lon ~-74.044
Python3 ~/.Hermes/skills/maps/scripts/maps_CLIent.py nearby --near "Times Square" --category restaurant --limit 3
# Should return a list of restaurants within ~500m of Times Square
`
`