feat: ✨ The application can display all velibs near the user's location
This commit is contained in:
parent
2d1416cf19
commit
ad31992a86
@ -10,8 +10,6 @@ import Foundation
|
|||||||
|
|
||||||
var velibStations: [VelibStation] = []
|
var velibStations: [VelibStation] = []
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
func fetchVelibData() {
|
func fetchVelibData() {
|
||||||
// L'URL de l'API Vélib
|
// 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")!
|
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
|
let task = session.dataTask(with: apiUrl) { (data, response, error) in
|
||||||
// Vérifiez s'il y a des erreurs
|
// Vérifiez s'il y a des erreurs
|
||||||
if let error = error {
|
if let error = error {
|
||||||
print("Erreur de requête : \(error.localizedDescription)")
|
print("Query error : \(error.localizedDescription)")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vérifiez si les données sont présentes
|
// Vérifiez si les données sont présentes
|
||||||
guard let data = data else {
|
guard let data = data else {
|
||||||
print("Aucune donnée reçue.")
|
print("No data received.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -41,9 +39,9 @@ func fetchVelibData() {
|
|||||||
// Stockez les données dans la variable globale velibStations
|
// Stockez les données dans la variable globale velibStations
|
||||||
velibStations = velibResponse.results
|
velibStations = velibResponse.results
|
||||||
|
|
||||||
print("Données Vélib récupérées avec succès.")
|
print("Vélib data successfully recovered.")
|
||||||
} catch {
|
} 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) {
|
func fetchVelibDataLocation(lon: Double, lat: Double) {
|
||||||
// L'URL de l'API Vélib
|
// L'URL de l'API Vélib
|
||||||
print(lon, lat)
|
print(lon, lat)
|
||||||
let longitude = String(lon).replacingOccurrences(of: ",", with: ".")
|
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)")!
|
||||||
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)")!
|
|
||||||
|
|
||||||
// Créez une session URLSession pour effectuer la requête
|
// Créez une session URLSession pour effectuer la requête
|
||||||
let session = URLSession.shared
|
let session = URLSession.shared
|
||||||
|
|
||||||
// Créez la tâche de requête
|
// 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
|
// Vérifiez s'il y a des erreurs
|
||||||
if let error = error {
|
if let error = error {
|
||||||
print("Erreur de requête : \(error.localizedDescription)")
|
print("Query error : \(error.localizedDescription)")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Vérifiez si les données sont présentes
|
// Vérifiez si les données sont présentes
|
||||||
guard let data = data else {
|
guard let data = data else {
|
||||||
print("Aucune donnée reçue.")
|
print("No data received.")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,9 +81,9 @@ func fetchVelibDataLocation(lon: Double, lat: Double) {
|
|||||||
velibStations = velibResponse.results
|
velibStations = velibResponse.results
|
||||||
print(velibStations)
|
print(velibStations)
|
||||||
|
|
||||||
print("Données Vélib récupérées avec succès.")
|
print("Vélib data successfully recovered.")
|
||||||
} catch {
|
} catch {
|
||||||
print("Erreur lors du décodage JSON : \(error.localizedDescription)")
|
print("Error decoding JSON : \(error.localizedDescription)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ struct velibtrackerApp: App {
|
|||||||
ContentView()
|
ContentView()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
init() {
|
// init() {
|
||||||
fetchVelibData()
|
// fetchVelibData()
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user