Rayon distance php depuis bdd

Fermé
vinkey33 Messages postés 92 Date d'inscription mercredi 9 décembre 2015 Statut Membre Dernière intervention 23 janvier 2021 - Modifié le 4 sept. 2020 à 13:25
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 - 24 sept. 2020 à 05:05
Bonjour,

je suis entrain essayé de réalisé un menu déroulant depuis ma base de données, affiché le contenant de ma table avec des coordonné longitude et latitude, j'aimerais savoir si c'est possible de faire un rayon de 8km par exemple d'un point de départ déterminé au paravant
merci,
A voir également:

6 réponses

yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 Ambassadeur 1 550
4 sept. 2020 à 14:15
bonjour, je pense que c'est possible.
0
vinkey33 Messages postés 92 Date d'inscription mercredi 9 décembre 2015 Statut Membre Dernière intervention 23 janvier 2021
Modifié le 4 sept. 2020 à 15:22
j'ai réalisé deux code qui combiné mais je bloc
<!doctype html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<?php
require('Connect.php');
$sql="SELECT * FROM `villes_france_free` WHERE `ville_departement` ='91' ";
if(!$pdo->query($sql)) echo "Pb d'accès au CARNET";
else {
?>
<form>
<select name="ville_id">
<?php
foreach ($pdo->query($sql) as $row)
if(!empty($row['ville_nom']))
echo "<option value='".$row['ville_longitude_deg']." ".$row['ville_latitude_deg']."'>"
.$row['ville_code_postal']." ".$row['ville_nom']."</option>\n";
?>
</select>
<?
function get_distance_m($lat1, $lng1, $lat2, $lng2) {
$earth_radius = 6378137; // Terre = sphère de 6378km de rayon
$rlo1 = deg2rad($lng1);
$rla1 = deg2rad($lat1);
$rlo2 = deg2rad($lng2);
$rla2 = deg2rad($lat2);
$dlo = ($rlo2 - $rlo1) / 2;
$dla = ($rla2 - $rla1) / 2;
$a = (sin($dla) * sin($dla)) + cos($rla1) * cos($rla2) * (sin($dlo) * sin($dlo));
$d = 2 * atan2(sqrt($a), sqrt(1 - $a));
return ($earth_radius * $d);
}
echo (round(get_distance_m(48.856667, 2.350987, echo "['ville_longitude_deg']", echo "['ville_latitude_deg']") / 1000, 3)). ' km';
?>
</form>
<?php
}
?>
</body>
</html>

je voudrais, lorsque je choisit une ville du département qui m'affiche la distance entre le point a qui sera fixe (la longitude et la latitude) et le point b qui seront les ville du département quand je sélectionne une ville rien s'affiche es ce que c'est la bonne écriture pou affiché depuis la base de donnée?
merci pour vous réponse
cordialement,
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550
4 sept. 2020 à 15:51
peux-tu préciser "php" quand tu utilises les balises de code pour partager du php?
c'est bien de montrer ton code, mais ce serait mieux d'aussi expliquer comment il se comporte.
tiens compte de ceci: https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
au lieu de
get_distance_m(48.856667, 2.350987, echo "['ville_longitude_deg']", echo "['ville_latitude_deg']")

je ferais plutôt
get_distance_m(48.856667, 2.350987, $row['ville_longitude_deg'] , $row['ville_latitude_deg'] )
0
vinkey33 Messages postés 92 Date d'inscription mercredi 9 décembre 2015 Statut Membre Dernière intervention 23 janvier 2021
4 sept. 2020 à 16:18
même avec row sa ne marche pas
le mécanisme est quand je sélectionne une ville dans la liste déroulante depuis ma bdd pour qu'ensuite, grace au echos, depuis les coordonné de la liste déroulante je voudrais savoir combien de kilomètre sépare ces deux ville
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550
4 sept. 2020 à 16:52
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550 > yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024
4 sept. 2020 à 17:00
si tu fais ceci, cela donne quoi?
<?php
require('Connect.php');
         function get_distance_m($lat1, $lng1, $lat2, $lng2) {
      $earth_radius = 6378137;   // Terre = sphère de 6378km de rayon
      $rlo1 = deg2rad($lng1);
      $rla1 = deg2rad($lat1);
      $rlo2 = deg2rad($lng2);
      $rla2 = deg2rad($lat2);
      $dlo = ($rlo2 - $rlo1) / 2;
      $dla = ($rla2 - $rla1) / 2;
      $a = (sin($dla) * sin($dla)) + cos($rla1) * cos($rla2) * (sin($dlo) * sin($dlo));
      $d = 2 * atan2(sqrt($a), sqrt(1 - $a));
      return ($earth_radius * $d);
    }
$sql="SELECT * FROM `villes_france_free` WHERE `ville_departement` ='91' ";
if(!$pdo->query($sql)) echo "Pb d'accès au CARNET";
else {
      foreach ($pdo->query($sql) as $row)
      if(!empty($row['ville_nom'])){
        echo $row['ville_longitude_deg']." ".$row['ville_latitude_deg']."' ".$row['ville_nom'];
      echo (round(get_distance_m(48.856667, 2.350987, $row['ville_longitude_deg'] , $row['ville_latitude_deg'] ) / 1000, 3)). ' km';
}
}
?>    
0
vinkey33 Messages postés 92 Date d'inscription mercredi 9 décembre 2015 Statut Membre Dernière intervention 23 janvier 2021
Modifié le 4 sept. 2020 à 17:05
quand je m'est les coordonné à la place de mets variable cela fonctionne mais quand je remets les variable plus rien, il y a une page avec ma liste déroulante mais pas le echos avec le km
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
vinkey33 Messages postés 92 Date d'inscription mercredi 9 décembre 2015 Statut Membre Dernière intervention 23 janvier 2021
Modifié le 4 sept. 2020 à 17:23
excuse moi sa me donne
2.15 48.65' JANVRY6807.3 km2.5 48.7' BRUNOY6777.633 km2.21667 48.55' BOISSY-SOUS-SAINT-YON6795.028 km2.25 48.7' VILLEBON-SUR-YVETTE6800.978 km2.05 48.35' MONNERVILLE6798.571 km2.37806 48.3731' GIRONVILLE-SUR-ESSONNE6769.261 km2.06667 48.4333' SAINT-HILAIRE6802.024 km2.45 48.6333' EVRY6778.261 km2.31667 48.5667' LEUDEVILLE6786.689 km2.31667 48.3833' VALPUISEAUX6775.618 km2.01667 48.5333' DOURDAN6812.728 km2.13333 48.3' ESTOUCHES6787.76 km2.41667 48.6833' DRAVEIL6784.401 km2.2 48.3667' MAROLLES-EN-BEAUCE6785.534 km2.43333 48.5667' MENNECY6775.788 km2.38333 48.65' GRIGNY6785.498 km2.36667 48.55' VERT-LE-PETIT6781.007 km2.47334 48.3831' ONCY-SUR-ECOLE6760.955 km2.1 48.3667' GUILLERVAL6794.894 km2.33333 48.7333' WISSOUS6795.21 km2.35889 48.4328' VAYRES-SUR-ESSONNE6774.656 km2.16667 48.35' ABBEVILLE-LA-RIVIERE6787.648 km2.25 48.5667' AVRAINVILLE6792.921 km2.41667 48.65' RIS-ORANGIS6782.385 km2.16667 48.7' BURES-SUR-YVETTE6808.764 km2.25 48.7167' PALAISEAU6801.988 km2.25 48.5833' ARPAJON6793.923 km2.35306 48.4675' GUIGNEVILLE-SUR-ESSONNE6777.296 km2.33333 48.6667' EPINAY-SUR-ORGE6791.179 km2.25833 48.3167' BLANDY6777.063 km2.53333 48.6833' BOUSSY-SAINT-ANTOINE6773.51 km2.45 48.5833' VILLABE6775.235 km2.26667 48.65' LA VILLE-DU-BOIS6796.397 km2.06667 48.5833' ANGERVILLIERS6811.065 km2.4 48.5667' ECHARCON6778.902 km2.43333 48.5667' ORMOY6775.788 km2.31667 48.4667' CERNY6780.65 km2.26667 48.75' VERRIERES-LE-BUISSON6802.446 km2.28333 48.4667' BOISSY-LE-CUTTE6783.767 km2.45 48.7167' CROSNE6783.312 km2.45695 48.4328' MOIGNY-SUR-ECOLE6765.488 km2.28333 48.6333' LONGPONT-SUR-ORGE6793.83 km2.41667 48.4833' MONDEVILLE6772.304 km2.3 48.6333' SAINT-MICHEL-... et sa continue, sa veut qui faut placé une liste déroulant au niveau du foreach?
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550
4 sept. 2020 à 17:59
cela montre que le calcul de distance fonctionne bien, non?
n'était-ce pas le point de départ de cette discussion?
0
vinkey33 Messages postés 92 Date d'inscription mercredi 9 décembre 2015 Statut Membre Dernière intervention 23 janvier 2021
4 sept. 2020 à 18:04
oui et non, oui cela fonctionne et nom car j'essaye de mettre la ville plus le cp dans la liste déroulante et avoir la distance en dessous
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550
4 sept. 2020 à 18:17
je ne vois pas quelle technique tu essaies d'utiliser pour afficher une information en fonction du choix de la liste déroulante.
fais-tu cela sur base d'un exemple ou d'un cours?
peut-être veux-tu utiliser du javascript pour calculer la distance, et que tu fais, pas erreur, en php?
0
yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024 1 550 > yg_be Messages postés 23342 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 21 novembre 2024
24 sept. 2020 à 05:05
peux-tu donner suite, ou marquer la discussion comme résolue?
0