Files
flutter_tank_web_app/lib/services/location_iq_service.dart

43 lines
1.3 KiB
Dart

// ignore_for_file: public_member_api_docs, sort_constructors_first
import 'package:http/http.dart' as http;
import 'dart:convert';
import '../config/environment.dart';
import '../models/locationiq_model.dart';
class LocationIQService {
static final String baseUrl = Environment.locationIQBaseUrl;
late LocationIQ locationIQ;
Future<void> fetchLocationIQ(double lat, double lon) async {
// https://eu1.locationiq.com/v1/reverse?key=$locationIQKey&lat=47.93875449671056&lon=13.762706553431048&format=json
// Http Request
var httpClient = http.Client();
var url = '$baseUrl&lat=$lat&lon=$lon&format=json';
print('Fetching LocationIQ data from: $url');
try {
var response = await httpClient.get(Uri.parse(url));
if (response.statusCode == 200) {
print('LocationIQ API response: ${response.body}');
locationIQ = LocationIQ.fromJson(
Map<String, dynamic>.from(
jsonDecode(response.body) as Map<String, dynamic>,
),
);
print('LocationIQ data parsed successfully: ${locationIQ.displayName}');
} else {
print('Failed to fetch LocationIQ data. Status code: ${response.statusCode}');
}
} catch (e) {
print('Error fetching LocationIQ data: $e');
} finally {
httpClient.close();
}
}
}