Rayon distance php depuis bdd
vinkey33
Messages postés
92
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
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,
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:
- Rayon distance php depuis bdd
- Allumer pc à distance - Guide
- Easy php - Télécharger - Divers Web & Internet
- Déclencher appareil photo android à distance - Guide
- Expert php pinterest - Télécharger - Langages
- Camille organise une discussion à distance avec ses 5 cousins qui ont des smartphones mais pas d’ordinateur. - Accueil - Guide téléphones
6 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, je pense que c'est possible.
j'ai réalisé deux code qui combiné mais je bloc
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,
<!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,
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
je ferais plutôt
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'] )
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
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
"sa ne marche pas": que se passe-t'il?
as-tu tenu compte de ceci: https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
as-tu tenu compte de ceci: https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
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'; } } ?>
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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?
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?
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