MySQL interesse |
|
Beste mensen, ik heb onderstaande code om afstand te berekenen tussen 2 punten.
Ik kan nu wel instellen de maximaal aantal resultaten ($num) maar nu wil ik ook kunnen instellen op bijvoorbeeld alle punten binnen een straal van 10 kilometer.
Dit is de code:
<?php
function getNearLonLat($lon, $lat, $exclude = null, $num = 5)
{
$where = ($exclude == null?'':"WHERE `B`.`hotel_id`!=$exclude ");
$query=
"SELECT `B`.*,".
"DEGREES(acos(cos(RADIANS(90-`lat`))".
"*cos(RADIANS(90-$lat))+sin(RADIANS(90-`lat`))".
"*sin(RADIANS(90-$lat))".
"*cos(RADIANS(`lon`-$lon))))".
"/360*40074 as `distance` ".
"FROM `hotel` as `B` ".
"$where".
"ORDER by `distance` ASC limit $num";
?>
<?php function getNearLonLat($lon, $lat, $exclude = null, $num = 5) { $where = ($exclude == null?'':"WHERE `B`.`hotel_id`!=$exclude "); $query= "SELECT `B`.*,". "DEGREES(acos(cos(RADIANS(90-`lat`))". "*cos(RADIANS(90-$lat))+sin(RADIANS(90-`lat`))". "*sin(RADIANS(90-$lat))". "*cos(RADIANS(`lon`-$lon))))". "/360*40074 as `distance` ". "FROM `hotel` as `B` ". "$where". "ORDER by `distance` ASC limit $num"; ?>
Kan iemand mij een beetje op weg helpen, want ik kom er niet uit.
|