예제 #1
0
 static function getLocationsInRange($latitude, $longitude)
 {
     //get a DB Connection
     $conn = classes_utils_dbconnect::createDBConnection();
     //query db for locations within the specified range
     $stmt = $conn->prepare("SELECT id, ( 3959 * acos( cos( radians(?) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(?) ) + sin( radians(?) ) * sin( radians( lat ) ) ) ) AS distance FROM locations HAVING distance < 10 ORDER BY distance LIMIT 0 , 20");
     $stmt->execute(array($latitude, $longitude, $latitude));
     $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
     return $rows;
 }
예제 #2
0
<?php

//header-----------------------------------------
header('Content-Type: application/json');
require_once '../inc/autoloader.php';
spl_autoload_register('replaceunderscores');
//------------------------------------------------
//get current lat and long from ajax call
$lng = strval(round($_REQUEST['lng'], 6));
$lat = strval(round($_REQUEST['lat'], 6));
$markers = array();
//get a DB Connection
$conn = classes_utils_dbconnect::createDBConnection();
//query db for locations within the specified range
$stmt = $conn->prepare("SELECT locationid, name, address , lat, lng,( 3959 * acos( cos( radians(?) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(?) ) + sin( radians(?) ) * sin( radians( lat ) ) ) ) AS distance FROM locations HAVING distance < 10 ORDER BY distance LIMIT 0 , 20");
$stmt->execute(array($lat, $lng, $lat));
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($rows);