Request → Transaction¶
Trang này giải thích cách các lượt gọi Map API được quy ra transaction trong hệ thống tính tiền/đo mức dùng của chúng tôi. Bạn dùng các ví dụ và công thức bên dưới để ước lượng số transaction sẽ tiêu tốn.
Lưu ý: Transaction của API chỉ đường được tính bằng phép chia lấy phần nguyên trên số điểm dừng. Các API còn lại thường là 1 request = 1 transaction.
"Request" là gì, "transaction" là gì?¶
Request:¶
- Request là một lượt gọi HTTP từ ứng dụng của bạn tới một endpoint API của Vietmap. Mỗi request gồm đường dẫn endpoint, phương thức HTTP, tham số (query/body) và API key của bạn. Ví dụ: gọi
/geocodeđể lấy tọa độ của một địa chỉ, hoặc gọi/routeđể tính đường đi. - Nói ngắn gọn: request = một lượt app của bạn gọi API.
Transaction:¶
- Transaction là đơn vị tính tiền/đo mức dùng mà VIETMAP dùng để đo lượng xử lý mà các request của bạn tiêu tốn. Hạn mức và hóa đơn đều tính theo transaction.
- Điều quan trọng: một request không phải lúc nào cũng bằng một transaction. Với một số API, một request có thể tính thành nhiều transaction vì nó cần xử lý nặng hơn hoặc bao gồm nhiều phần việc (ví dụ endpoint chỉ đường hoặc ma trận khoảng cách).
Ví dụ:¶
- Một lượt geocode đơn giản thường tốn 1 transaction.
- Một lượt gọi chỉ đường có nhiều điểm dừng có thể tốn nhiều transaction, theo công thức nêu ở trên.
Khi ước lượng mức dùng, bạn nhớ dựa vào các định nghĩa này để quy số request dự kiến ra đúng số transaction.
Bảng tóm tắt¶
| API | Mô tả | Request | Transaction |
|---|---|---|---|
| Tile map | Ảnh tile để vẽ bản đồ | 25 | 1 |
| Geocoding (Search) | Đổi địa chỉ/địa điểm thành tọa độ | 1 | 1 |
| Reverse | Đổi tọa độ thành địa chỉ/địa điểm | 1 | 1 |
| Autocomplete | Gợi ý nhanh theo từ khóa địa chỉ/địa điểm | 1 | 1 |
| Routing | Đường đi cho hành trình nhiều điểm dừng và nhiều loại xe | 1 | 1 × (⌊số điểm/5⌋ + 1) |
| Matrix | Ma trận thời gian/quãng đường giữa n điểm đi và m điểm đến | 1 | n × m |
| TSP (Traveling Salesperson Problem) | Tối ưu lộ trình cho 1 xe qua m điểm dừng | 1 | m |
| VRP (Vehicle Routing Problem) | Tối ưu lộ trình cho n xe qua m điểm dừng | 1 | n × m |
| Isochrone | Vùng đi tới được theo phương tiện và thời gian di chuyển | 1 | 1 |
Quy tắc và công thức¶
Các API tính 1:1¶
Những API này tốn 1 transaction cho mỗi request. Ví dụ: Geocoding, Reverse, Autocomplete, Place, Isochrone.
Công thức Tile map¶
Request tile bản đồ được tính như sau: 1 transaction = 25 lượt tải tile. Ví dụ, ứng dụng của bạn tải 100 tile thì tốn 4 transaction (100 / 25 = 4).
SDK của chúng tôi tự động tải tile theo khung nhìn, mức zoom và thao tác của người dùng. Vẽ được một khung bản đồ cần nhiều hơn 1 tile, nên các lượt tải tile được gom lại thành transaction cho hợp lý.
SDK cũng có sẵn cơ chế cache để hạn chế tải trùng tile, nhờ vậy giảm số transaction. Mỗi URL tile chỉ được tính một lần.
Công thức Routing¶
Transaction của API chỉ đường tính theo công thức:
transaction = 1 × (⌊số điểm / 5⌋ + 1)
trong đó số điểm là số điểm dừng trên hành trình. Công thức tính 1 transaction nền, rồi cộng thêm 1 transaction cho mỗi nhóm đủ 5 điểm.
Ví dụ:
- 5 điểm → ⌊5/5⌋ + 1 = 1 + 1 = 2 transaction
- 10 điểm → ⌊10/5⌋ + 1 = 2 + 1 = 3 transaction
- 12 điểm → ⌊12/5⌋ + 1 = 2 + 1 = 3 transaction
Công thức Matrix¶
Transaction của Matrix = n × m, với n = số điểm đi (số xe) và m = số điểm đến (số điểm giao, khách hàng...).
Ví dụ:
- 2 xe × 5 điểm = 10 transaction
- 3 xe × 8 điểm = 24 transaction
TSP và VRP¶
- TSP: transaction = số điểm dừng
m(tối ưu cho một xe) - VRP: transaction =
n × m(số xe × số điểm dừng)
Ví dụ tổng hợp¶
- Một lượt gọi chỉ đường với 8 điểm:
transaction = ⌊8/5⌋ + 1 = 1 + 1 = 2 transaction
- Một lượt gọi Matrix với 4 điểm đi và 10 điểm đến:
transaction = 4 × 10 = 40 transaction
Lưu ý và khuyến nghị¶
- Chúng tôi có công cụ quy đổi giá giúp bạn quy đổi qua lại giữa ngân sách (VNĐ) và số transaction ước tính.
- Bạn nên đọc tài liệu của từng API để biết các trường hợp đặc biệt ảnh hưởng tới cách tính transaction.
- Khi ước tính chi phí, hãy cộng dồn số request dự kiến theo ngày hoặc theo tháng rồi áp công thức ở trên để ra số transaction.
- Với key công khai hoặc key phát hành xuống client, bạn nhớ đặt giới hạn IP / tên miền trong Console để tránh bị dùng trái phép.