SVMap Partner API
Tài liệu tích hợp cho đối tác
Tài liệu này mô tả 6 API chính của SVMap để đối tác tích hợp tìm kiếm địa chỉ, place detail, geocode, reverse geocode, directions và ETA.
Lưu ý: Trong tài liệu mẫu nên thay API key thật bằng
YOUR_API_KEY khi gửi ra ngoài.
Mục lục
Quy ước chung
- Tất cả API trong tài liệu này được gọi qua
GET. - API key truyền qua query param
key. - Các giá trị tọa độ dùng định dạng
lat,lng. - Khi truyền nhiều điểm trong cùng một tham số, dùng ký tự
|để phân tách. - Khuyến nghị URL encode toàn bộ query string khi tích hợp.
1. Autocomplete
API dùng để gợi ý địa điểm, địa chỉ hoặc POI theo từ khóa tìm kiếm.
Endpoint
GET /place/autocomplete
Request Parameters
| Tên | Bắt buộc | Mô tả |
|---|---|---|
key | Có | API key do SVMap cấp. |
input | Có | Từ khóa tìm kiếm. Khuyến nghị từ 4 ký tự trở lên. |
location | Không | Tọa độ tham chiếu theo dạng lat,lng để ưu tiên kết quả gần vị trí này. |
province_id | Không | Mã tỉnh/thành nếu đối tác muốn bias theo khu vực. |
callback | Không | Trả JSONP nếu cần. |
Ví dụ Request
curl --location 'https://api.svmap.vn/place/autocomplete?input=31%20Mac%20Thi%20Buoi&location=10.77526%2C106.70565&key=YOUR_API_KEY'
Response thành công
{
"status": "OK",
"predictions": [
{
"name": "31 Mac Thi Buoi",
"address": "31 Mac Thi Buoi, Ben Nghe, Quan 1, Ho Chi Minh, Viet Nam",
"location": {
"lat": 10.77526,
"lng": 106.70565
},
"place_id": "..."
}
]
}
Response lỗi thường gặp
{
"result": "0",
"data": [],
"message": "Vui lòng nhập lớn hơn 3 ký tự."
}
2. Place Detail
API dùng để lấy thông tin chi tiết của một địa điểm theo place_id.
Endpoint
GET /place/details
Request Parameters
| Tên | Bắt buộc | Mô tả |
|---|---|---|
key | Có | API key do SVMap cấp. |
place_id | Có | Mã địa điểm lấy từ API autocomplete hoặc từ dữ liệu đã lưu trước đó. |
callback | Không | Trả JSONP nếu cần. |
Ví dụ Request
curl --location 'https://api.svmap.vn/place/details?key=YOUR_API_KEY&place_id=db773cb9b803c49374c3be9e720bc13b'
Response thành công
{
"html_attributions": [],
"status": "OK",
"result": {
"name": "Tên địa điểm",
"formatted_address": "Địa chỉ đầy đủ",
"geometry": {
"location": {
"lat": 10.123,
"lng": 106.123
}
},
"place_id": "db773cb9b803c49374c3be9e720bc13b",
"province_id": 1,
"address_components": []
}
}
3. Geocode
API dùng để chuyển đổi địa chỉ văn bản sang tọa độ.
Endpoint
GET /geocoding
Request Parameters
| Tên | Bắt buộc | Mô tả |
|---|---|---|
key | Có | API key do SVMap cấp. |
address | Có | Địa chỉ cần geocode. |
province_id | Không | Bias theo tỉnh/thành nếu cần. |
limit | Không | Số lượng candidate muốn lấy. |
Ví dụ Request
curl --location 'https://api.svmap.vn/geocoding?key=YOUR_API_KEY&address=307%20Nguyen%20Trong%20Tuyen%2C%20Phu%20Nhuan'
Response thành công
{
"status": "OK",
"results": [
{
"formatted_address": "307 Nguyen Trong Tuyen, Phu Nhuan, Ho Chi Minh, Viet Nam",
"geometry": {
"location": {
"lat": 10.123,
"lng": 106.123
}
},
"place_id": "...",
"province_id": 1
}
]
}
4. Reverse Geocode
API dùng để chuyển đổi tọa độ sang địa chỉ gần nhất.
GET /geocoding
Request Parameters
| Tên | Bắt buộc | Mô tả |
|---|---|---|
key | Có | API key do SVMap cấp. |
latlng | Có | Tọa độ theo định dạng lat,lng. |
maxdistance | Không | Bán kính tìm kiếm gần nhất quanh tọa độ truyền vào. |
Ví dụ Request
curl --location 'https://api.svmap.vn/geocoding?latlng=16.06111%2C108.217309&key=YOUR_API_KEY'
Response thành công
{
"status": "OK",
"results": [
{
"formatted_address": "Địa chỉ gần nhất",
"geometry": {
"location": {
"lat": 16.06111,
"lng": 108.217309
}
},
"place_id": "...",
"province_id": 1
}
]
}
5. Directions
API dùng để tính lộ trình từ một điểm xuất phát đến một điểm đến.
Endpoint
GET /directions
Request Parameters
| Tên | Bắt buộc | Mô tả |
|---|---|---|
key | Có | API key do SVMap cấp. |
origin | Có | Tọa độ điểm xuất phát theo dạng lat,lng. |
destination | Có | Tọa độ điểm đến theo dạng lat,lng. |
mode | Không | Chế độ di chuyển. Giá trị hỗ trợ: car, bike. |
weight | Không | Tùy chọn sắp xếp phương án route. |
Ví dụ Request
curl --location 'https://api.svmap.vn/directions?key=YOUR_API_KEY&origin=21.597262%2C105.821485&destination=21.598438%2C105.817684&mode=car'
Response thành công
{
"geocoded_waypoints": [],
"status": "OK",
"routes": [
{
"distance": {
"text": "1.2 km",
"value": 1200
},
"duration": {
"text": "5 phút",
"value": 300
},
"overview_polyline": {
"points": "..."
},
"legs": []
}
]
}
Response khi không có tuyến
{
"status": "No Route",
"geocoded_waypoints": [],
"routes": []
}
5a. Directions qua nhiều điểm dừng
API hỗ trợ truyền nhiều điểm đến trong cùng một request bằng ký tự |.
Ví dụ Request
curl --location 'https://api.svmap.vn/directions?key=YOUR_API_KEY&origin=10.800386546950085%2C106.64433670624179&destination=10.8786159915385%2C106.64537122920565%7C10.932158596993716%2C106.8003108245106&mode=car'
Quy tắc dữ liệu
originlà điểm bắt đầu.destinationlà danh sách điểm đến theo đúng thứ tự đi qua.- Ký tự phân tách nhiều điểm là
|. - Hệ thống trả về một route tổng, đi lần lượt qua các điểm đến đã truyền.
6. ETA / Distance Matrix
API dùng để tính khoảng cách và thời gian di chuyển từ nhiều điểm xuất phát đến một điểm đích.
Endpoint
GET /distancematrix
Request Parameters
| Tên | Bắt buộc | Mô tả |
|---|---|---|
key | Có | API key do SVMap cấp. |
origins | Có | Danh sách tọa độ điểm xuất phát, ngăn cách bằng |. |
destinations | Có | Tọa độ điểm đích theo dạng lat,lng. |
travelMode | Không | Chế độ di chuyển. Thường dùng driving. |
weighting | Không | Tiêu chí sắp xếp kết quả. |
Ví dụ Request
curl --location 'https://api.svmap.vn/distancematrix?key=YOUR_API_KEY&origins=10.74821917%2C106.661378311%7C10.7482432%2C106.6614453%7C10.7483532%2C106.6613751%7C10.7483267%2C106.6614201%7C10.7505855%2C106.6614529&destinations=10.747475765436967%2C106.660299403704810&travelMode=driving&weighting=0'
Response thành công
{
"status": "OK",
"origin_addresses": [],
"destination_addresses": [],
"rows": [
{
"name": "Xe 0",
"elements": [
{
"distance": {
"text": "250 m",
"value": 250
},
"duration": {
"text": "2 phút",
"value": 120
},
"status": "OK"
}
]
}
]
}
Response lỗi dữ liệu đầu vào
{
"result": "0",
"data": [],
"message": "Dữ liệu không hợp lệ."
}
Tài liệu này được biên soạn theo format dành cho đối tác tích hợp API. Nếu cần, có thể tách riêng từng API thành file HTML độc lập để gửi theo từng module.
