diff --git a/core.php b/core.php index dd4cef7..6ccd688 100644 --- a/core.php +++ b/core.php @@ -35,18 +35,10 @@ function getCalendrier() } return ($calendrier); } - -function geocode($url) +function getCities($html) { - - // URL de la page à analyser - //$url = $_GET['calendrier']; - // $url = 'https://www.sabradou.com/index.php'; - - // Récupération du contenu de la page - $html = file_get_contents($url); - // Création d'un objet DOMDocument + $html = file_get_contents($html); $dom = new DOMDocument(); libxml_use_internal_errors(true); // Ignore les erreurs de parsing HTML $dom->loadHTML($html); @@ -58,7 +50,7 @@ function geocode($url) // Recherche des balises
  • dans le div $liElements = $sommaireCentreDiv->getElementsByTagName('li'); - // Tableau pour stocker les villes et leurs coordonnées + // Tableau pour stocker les villes $cities = array(); // Parcourir les balises
  • et extraire le texte cliquable des liens @@ -69,40 +61,54 @@ function geocode($url) $ville = $linkElement->nodeValue; $ville = preg_replace('/^(B\s|\d{2}\s)/', '', $ville); $href = $linkElement->getAttribute('href'); - //echo $ville . "
    "; - //echo "Lien : " . $href . "
    "; - - // Requête à l'API Nominatim - $options = array( - 'http' => 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", - ), + $cities[] = array( + 'name' => $ville, + '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']; - - //echo "Latitude : " . $latitude . "
    "; - //echo "Longitude : " . $longitude . "
    "; - - // Ajouter la ville et ses coordonnées au tableau - $cities[] = array( - 'name' => $ville, - 'lat' => $latitude, - 'lon' => $longitude, - 'href' => $href, - ); - } else { - echo "Erreur : Impossible de géocoder la ville : " . $ville; - } } } - return ($cities); -} \ No newline at end of file + + return $cities; +} + +function geocode($cities) +{ + // Tableau pour stocker les villes et leurs coordonnées + $citiesData = array(); + + // Parcourir les villes et géocoder leurs coordonnées + foreach ($cities as $city) { + $ville = $city['name']; + $href = $city['href']; + + // Requête à l'API Nominatim + $options = array( + 'http' => 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", + ), + ); + $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 + $citiesData[] = array( + 'name' => $ville, + 'lat' => $latitude, + 'lon' => $longitude, + 'href' => $href, + ); + } else { + echo "Erreur : Impossible de géocoder la ville : " . $ville; + } + } + + return $citiesData; +} diff --git a/map.php b/map.php index 7185b64..2a617b9 100644 --- a/map.php +++ b/map.php @@ -10,7 +10,8 @@ - + +