43 lines
1.3 KiB
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();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|