geocode database
This commit is contained in:
parent
17a5fac092
commit
971a95516e
1
cities_data.json
Normal file
1
cities_data.json
Normal file
File diff suppressed because one or more lines are too long
63
core.php
63
core.php
@ -82,35 +82,54 @@ function geocode($cities)
|
|||||||
// Tableau pour stocker les villes et leurs coordonnées
|
// Tableau pour stocker les villes et leurs coordonnées
|
||||||
$citiesData = array();
|
$citiesData = array();
|
||||||
|
|
||||||
|
// Charger les données à partir du fichier JSON s'il existe
|
||||||
|
if (file_exists('cities_data.json')) {
|
||||||
|
$citiesData = json_decode(file_get_contents('cities_data.json'), true);
|
||||||
|
}
|
||||||
|
|
||||||
// Parcourir les villes et géocoder leurs coordonnées
|
// Parcourir les villes et géocoder leurs coordonnées
|
||||||
foreach ($cities as $city) {
|
foreach ($cities as $city) {
|
||||||
$ville = $city['name'];
|
$ville = $city['name'];
|
||||||
$href = $city['href'];
|
$href = $city['href'];
|
||||||
|
|
||||||
// Requête à l'API Nominatim
|
// Vérifier si les coordonnées sont déjà présentes dans le tableau
|
||||||
$options = array(
|
$existingCity = array_filter($citiesData, function ($data) use ($ville) {
|
||||||
'http' => array(
|
return $data['name'] === $ville;
|
||||||
'header' => "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
|
});
|
||||||
),
|
|
||||||
);
|
|
||||||
$context = stream_context_create($options);
|
|
||||||
$url = 'https://nominatim.openstreetmap.org/search?city=' . urlencode($ville) . '&format=json';
|
|
||||||
$response = file_get_contents($url, false, $context);
|
|
||||||
$data = json_decode($response, true);
|
|
||||||
|
|
||||||
// Vérifier si la requête a réussi
|
if (!empty($existingCity)) {
|
||||||
if (!empty($data)) {
|
// Utiliser les coordonnées existantes
|
||||||
// Récupérer les coordonnées géographiques de la première correspondance
|
$citiesData[] = reset($existingCity);
|
||||||
$latitude = $data[0]['lat'];
|
} else {
|
||||||
$longitude = $data[0]['lon'];
|
// Requête à l'API Nominatim
|
||||||
|
$options = array(
|
||||||
// Ajouter la ville et ses coordonnées au tableau
|
'http' => array(
|
||||||
$citiesData[] = array(
|
'header' => "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
|
||||||
'name' => $ville,
|
),
|
||||||
'lat' => $latitude,
|
|
||||||
'lon' => $longitude,
|
|
||||||
'href' => $href,
|
|
||||||
);
|
);
|
||||||
|
$context = stream_context_create($options);
|
||||||
|
$url = 'https://nominatim.openstreetmap.org/search?city=' . urlencode($ville) . '&format=json';
|
||||||
|
$response = file_get_contents($url, false, $context);
|
||||||
|
$data = json_decode($response, true);
|
||||||
|
|
||||||
|
// Vérifier si la requête a réussi
|
||||||
|
if (!empty($data)) {
|
||||||
|
// Récupérer les coordonnées géographiques de la première correspondance
|
||||||
|
$latitude = $data[0]['lat'];
|
||||||
|
$longitude = $data[0]['lon'];
|
||||||
|
|
||||||
|
// Ajouter la ville et ses coordonnées au tableau
|
||||||
|
$cityData = array(
|
||||||
|
'name' => $ville,
|
||||||
|
'lat' => $latitude,
|
||||||
|
'lon' => $longitude,
|
||||||
|
'href' => $href,
|
||||||
|
);
|
||||||
|
$citiesData[] = $cityData;
|
||||||
|
|
||||||
|
// Sauvegarder les données dans le fichier JSON
|
||||||
|
file_put_contents('cities_data.json', json_encode($citiesData));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
<link rel="stylesheet" href="style.css" />
|
<link rel="stylesheet" href="style.css" />
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body
|
<body>
|
||||||
<div class="header">
|
<div class="header">
|
||||||
<h1>GÉOLOCALISATION DES BROCANTES RÉFÉRENCÉES</h1>
|
<h1>GÉOLOCALISATION DES BROCANTES RÉFÉRENCÉES</h1>
|
||||||
<h2>SUR LE SITE <a href="https://www.sabradou.com/" target="_blank">SABRADOU.COM</a></h2>
|
<h2>SUR LE SITE <a href="https://www.sabradou.com/" target="_blank">SABRADOU.COM</a></h2>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user