Devo recuperare tutti i dati dalla tabella che ha valori di latitudini/longitudini. In realtà ho solo richiesto tutti i valori di latitudini/longitudini che sono entro 1000 miglia da una fonte, Quindi, per questo ho usato il concetto & è calcolare latitudini/longitudini correttamente, ma quando sto creando una query di ricerca per recuperare i dati che ha table.latitudes < = latitudini nord e table.latitudes> = latitudini SudCome fare trovare tutte le query in condizioni cakephp con un valore maggiore o minore di un valore
Allo stesso modo per longitudini.
Ho fatto questi codice di calcolo di query & ritrovamento
$lat1 = $coodSearch['lat'];
$lon1 = $coodSearch['long'];
$d = $coodSearch['dis'];
$r = 3959;//earth's radius in miles
//compute max and min latitudes/longitudes for search square
$latN = rad2deg(asin(sin(deg2rad($lat1)) * cos($d/$r) + cos(deg2rad($lat1)) * sin($d/$r) * cos(deg2rad(0))));
$latS = rad2deg(asin(sin(deg2rad($lat1)) * cos($d/$r) + cos(deg2rad($lat1)) * sin($d/$r) * cos(deg2rad(180))));
$lonE = rad2deg(deg2rad($lon1) + atan2(sin(deg2rad(90)) * sin($d/$r) * cos(deg2rad($lat1)), cos($d/$r) - sin(deg2rad($lat1)) * sin(deg2rad($latN))));
$lonW = rad2deg(deg2rad($lon1) + atan2(sin(deg2rad(270)) * sin($d/$r) * cos(deg2rad($lat1)), cos($d/$r) - sin(deg2rad($lat1)) * sin(deg2rad($latN))));
$this->loadModel('City');
$finder1 = array('and' => array('City.latitude <=' => $latN,'City.latitude >=' => $latS));
$latArr = $this->City->find('all', array('conditions' => $finder1));
$finder2 = array('and' => array('City.longitude >=' => $lonE,'City.longitude <=' => $lonW));
$longArr = $this->City->find('all', array('conditions' => $finder2));
ho Valore calcolato controllato ($ Latn, $ Lone) relativo dare risultato, ma trovare tutte query non funziona.
Per favore aiutami dove sto andando male.
"_Doesn't work_" non è una descrizione corretta problema. – ndm
Suggerimento: se non si desidera reinventare la ruota, è possibile utilizzare un [comportamento] (http://www.dereuromark.de/2012/06/12/geocoding-with-cakephp/) facile da integrare qui: '$ this-> setDistanceAsVirtualField ($ lat, $ lng);' e funzionerà fuori dalla scatola. Puoi anche usare il comportamento per sapere come sarebbe costruita una tale query. – mark