Page 1 sur 1
calcule distance des membres entre eux
Posté : 02 déc. 2019, 22:19
par solair8
hello j'ai une table avec les villes de france et des doms avec leur coordonnées GPS et un e table membre et je voudrais calculer
la distance avec entre les membres sans passer par google geo une idée?
Re: calcule distance des membres entre eux
Posté : 02 déc. 2019, 22:22
par or 1
Re: calcule distance des membres entre eux
Posté : 03 déc. 2019, 11:31
par solair88
mammouth merci je veux preciser que j'ai deja fait le calcule ;mon réel problême est plus du sql ,dans la table membre comment mettre le couple de coordonnées
gps et vu avec la ville sélectionner a l'inscription du membre, vu qu'ont ne la connait pas d'avance ou peut etre recuperer les coordonnes en javascript ? desoler je suis débutant ...
Re: calcule distance des membres entre eux
Posté : 03 déc. 2019, 12:54
par solair88
voila mon code:
table membre
table ville_france_free
Code : Tout sélectionner
<?php
require_once __DIR__ . '/config/bootstrap.php';
$req1 =$pdo->query("SELECT COUNT(ville_nom_simple)AS total_ville FROM villes_france_free WHERE ville_code_postal LIKE '66%'");
$req1->execute();
$tataux = $req1->fetch(PDO::FETCH_OBJ);
echo 'il y a '.$tataux->total_ville .'villes';
$req = $pdo->query("SELECT * FROM villes_france_free WHERE ville_code_postal LIKE '78%' ORDER BY ville_nom_simple ");
$req -> execute();
$data = $req->fetch(PDO::FETCH_OBJ);
while($data = $req->fetch(PDO::FETCH_OBJ))
{ echo '<div style =" color:red; font-size:2em;">';
echo $data->ville_nom_simple .'<br>';
echo '</div>';
echo '<div style =" color :lime";>';
echo 'longitude:'.$data->ville_longitude_deg .'<br>';
echo '</div>';
echo '<div style =" color :blue";>';
echo 'latitude:'.$data->ville_latitude_deg .'<br>';
echo '</div>';
echo $data->ville_code_postal;
echo '<hr>';
}
function getDistance($latitude1,$longitude1,$latitude2,$longitude2){
//convert from degrees to radians
$earthRadius = 6371;//en km
$latFrom = deg2rad($latitude1);
$lonFrom = deg2rad($longitude1);
$latTo = deg2rad($latitude2);
$lonTo = deg2rad($longitude2);
$latDelta = $latTo - $latFrom;
$lonDelta = $lonTo - $lonFrom;
$angle = 2 * asin(sqrt(pow(sin($latDelta / 2),2) + cos($latFrom)* cos($latTo)* pow(sin($lonDelta / 2),2)));
return $angle * $earthRadius;
}
//exemple etampes et morigny
$latitude1 = '42.7667';
$longitude1 = '2.98333';
$latitude2 = '42.6833';
$longitude2 = ' 2.88333';//etampes
$distance = getDistance($latitude1,$longitude1,$latitude2,$longitude2);
echo round($distance) .' '.'km';
Re: calcule distance des membres entre eux
Posté : 03 déc. 2019, 17:12
par Spols
Regarde du coté des jointures pour obtenir les infos d'une table en fonction d'une autre.
petit exemple sans connaitre ton schéma de table :
SELECT * FROM users JOIN villes ON users.ville = villes.ville WHERE user.id = 38