# Api Plugin
Source: https://maps.vietmap.vn/docs/vi/sdk-mobile/Flutter/api-plugin/
Package Dart để gọi các [API VIETMAP](https://maps.vietmap.vn/docs/vi/map-api/overview/) từ ứng dụng Flutter.
# Vietmap API Flutter plugin
[
](https://maps.vietmap.vn)
Lấy API key: [đăng ký miễn phí trên VIETMAP Console](https://maps.vietmap.vn/console-v2/register).
!!! warning "Dùng các hàm V4"
`vietmap_flutter_plugin` 0.5.2 có hai bộ hàm. `autocomplete`, `geoCode`, `reverse` và `place` (dùng trong ví dụ bên dưới) gọi API v3; muốn dùng API v4 và địa chỉ sau sáp nhập thì gọi `autocompleteV4`, `geoCodeV4`, `reverseV4` và `placeV4`. `routing` và `matrix` vẫn gọi endpoint cũ (`api-version=1.1`); cần phí cầu đường hay chỉ đường cho xe tải thì gọi thẳng [Route v4](https://maps.vietmap.vn/docs/vi/map-api/route-version/route-v4/) qua HTTP.
## Bắt đầu
Thêm thư viện vào file `pubspec.yaml`:
```yaml
vietmap_flutter_plugin: latest_version
```
Phiên bản mới nhất xem tại [https://pub.dev/packages/vietmap_flutter_plugin](https://pub.dev/packages/vietmap_flutter_plugin)
hoặc chạy lệnh sau trong terminal để thêm thư viện vào dự án:
```bash
flutter pub add vietmap_flutter_plugin
```
## Cách dùng
### Khởi tạo plugin
- Gọi `Vietmap.getInstance(apiKey)` trước khi dùng bất kỳ hàm nào khác.
```dart
Vietmap.getInstance('YOUR_API_KEY_HERE');
```
- Các hàm gọi API VIETMAP:
```dart
Vietmap.autocomplete(VietMapAutoCompleteParams(textSearch: 'Hà Nội'));
Vietmap.geoCode(VietMapAutoCompleteParams(textSearch: 'Hà Nội'));
Vietmap.reverse(LatLng(21.027763, 105.834160));
Vietmap.place('Place ID');
Vietmap.routing(VietMapRoutingParams(points: [
LatLng(21.027763, 105.834160),
LatLng(21.027763, 105.834160)
]));
/// This function is used to get the style url of Vietmap,
/// which provide the style of the map for VietmapGL plugin.
Vietmap.getVietmapStyleUrl();
```
## Thông tin thêm
Package này thuộc dự án [VIETMAP API](https://maps.vietmap.vn).
## Xử lý sự cố
Plugin dùng bản mới nhất của hai package [dio](https://pub.dev/packages/dio) và [dartz](https://pub.dev/packages/dartz).
Nếu bị xung đột phiên bản với dự án của bạn, hãy nâng hai package này lên bản mới nhất, hoặc ghi đè phiên bản như sau:
```yaml
dependencies:
dio: your_project_version
dartz: your_project_version
dependencies_override:
dio: our_plugin_version
dartz: our_plugin_version
```
Kết quả API được trả về qua kiểu `Either` của package [dartz](https://pub.dev/packages/dartz).
Xem tài liệu [dartz](https://pub.dev/packages/dartz) để biết cách xử lý kết quả:
```dart
var autocompleteData = await Vietmap.autocomplete(VietMapAutoCompleteParams(textSearch: 'Hà Nội'));
autocompleteData.fold(
(Failure left) {
// Handle error here
},
(List right) {
// Handle success here
},
);
```
## Lưu ý: thay mọi chỗ `YOUR_API_KEY_HERE` bằng API key VIETMAP cấp cho bạn thì ứng dụng mới chạy được
[
](https://maps.vietmap.vn)
Email: [maps.info@vietmap.vn](mailto:maps.info@vietmap.vn)
Bảng giá API VIETMAP: [maps.vietmap.vn](https://maps.vietmap.vn)
Liên hệ [hỗ trợ](https://maps.vietmap.vn/web#contact-section)
Tài liệu API VIETMAP: [Tổng quan Map API](https://maps.vietmap.vn/docs/vi/map-api/overview/)
Gặp lỗi? [Tạo issue](https://github.com/vietmap-company/vietmap_flutter_plugin/issues) trên GitHub, kèm log đầy đủ và thông tin để tái hiện lỗi nếu có thể.
Cần thêm tính năng? [Tạo issue](https://github.com/vietmap-company/vietmap_flutter_plugin/issues) mô tả tính năng đó làm gì và vì sao bạn cần.