feat: The application can display all velibs near the user's location

This commit is contained in:
Louis Gallet 2023-09-02 21:17:21 +02:00
parent 2d1416cf19
commit ad31992a86
Signed by: lgallet
SSH Key Fingerprint: SHA256:qnW7pk4EoMRR0UftZLZQKSMUImbEFsiruLC7jbCHJAY
2 changed files with 13 additions and 17 deletions

View File

@ -10,8 +10,6 @@ import Foundation
var velibStations: [VelibStation] = []
import Foundation
func fetchVelibData() {
// L'URL de l'API Vélib
let apiUrl = URL(string: "https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/records?select=stationcode,name,capacity,numdocksavailable,numbikesavailable,mechanical,ebike,coordonnees_geo")!
@ -23,13 +21,13 @@ func fetchVelibData() {
let task = session.dataTask(with: apiUrl) { (data, response, error) in
// Vérifiez s'il y a des erreurs
if let error = error {
print("Erreur de requête : \(error.localizedDescription)")
print("Query error : \(error.localizedDescription)")
return
}
// Vérifiez si les données sont présentes
guard let data = data else {
print("Aucune donnée reçue.")
print("No data received.")
return
}
@ -41,9 +39,9 @@ func fetchVelibData() {
// Stockez les données dans la variable globale velibStations
velibStations = velibResponse.results
print("Données Vélib récupérées avec succès.")
print("Vélib data successfully recovered.")
} catch {
print("Erreur lors du décodage JSON : \(error.localizedDescription)")
print("Error decoding JSON : \(error.localizedDescription)")
}
}
@ -55,24 +53,22 @@ func fetchVelibData() {
func fetchVelibDataLocation(lon: Double, lat: Double) {
// L'URL de l'API Vélib
print(lon, lat)
let longitude = String(lon).replacingOccurrences(of: ",", with: ".")
print(longitude)
let apiUrl = URL(string: "https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/records?select=stationcode,name,capacity,numdocksavailable,numbikesavailable,mechanical,ebike,coordonnees_geo&where=distance(coordonnees_geo%2C%20geom%27POINT(\(lon)%20\(lat)%27%2C%2015km)")!
let urlString = URL(string: "https://opendata.paris.fr/api/explore/v2.1/catalog/datasets/velib-disponibilite-en-temps-reel/records?select=stationcode,name,capacity,numdocksavailable,numbikesavailable,mechanical,ebike,coordonnees_geo&where=distance(coordonnees_geo,geom%27POINT(\(lon)\("%20")\(lat))%27,5km)")!
// Créez une session URLSession pour effectuer la requête
let session = URLSession.shared
// Créez la tâche de requête
let task = session.dataTask(with: apiUrl) { (data, response, error) in
let task = session.dataTask(with: urlString) { (data, response, error) in
// Vérifiez s'il y a des erreurs
if let error = error {
print("Erreur de requête : \(error.localizedDescription)")
print("Query error : \(error.localizedDescription)")
return
}
// Vérifiez si les données sont présentes
guard let data = data else {
print("Aucune donnée reçue.")
print("No data received.")
return
}
@ -85,9 +81,9 @@ func fetchVelibDataLocation(lon: Double, lat: Double) {
velibStations = velibResponse.results
print(velibStations)
print("Données Vélib récupérées avec succès.")
print("Vélib data successfully recovered.")
} catch {
print("Erreur lors du décodage JSON : \(error.localizedDescription)")
print("Error decoding JSON : \(error.localizedDescription)")
}
}

View File

@ -14,7 +14,7 @@ struct velibtrackerApp: App {
ContentView()
}
}
init() {
fetchVelibData()
}
// init() {
// fetchVelibData()
// }
}