Muszę pobrać wszystkie dane z tabeli, która ma wartości szerokości/długości geograficznej. Po prostu potrzebowałem wszystkich wartości szerokości/długości, które mieszczą się w granicach 1000 mil od źródła, więc do tego użyłem pojęcia & to obliczenie szerokości/długości geograficzne prawidłowo ale gdy tworzę zapytanie find do przechwycenia danych, które ma table.latitudes < = szerokościach geograficznych na północ i na table.latitudes> = szerokościach SouthJak znaleźć wszystkie zapytania w warunkach cakephp o wartościach większych niż i mniejszych niż wartości
Podobnie dla długości.
Zrobiłem te kodu kalkulacja & find zapytanie
$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));
mam sprawdzone wartości obliczonej ($, $ latN Lone) jego dając wynik, ale znaleźć wszystko kwerenda nie działa.
Proszę mi pomóc, gdzie idę źle.
"_Doesn't work_" nie jest właściwy opis problemu. – ndm
Wskazówka: Jeśli nie chcesz odkrywać koła na nowo, możesz użyć łatwego do zintegrowania [zachowania] (http://www.dereuromark.de/2012/06/12/geocoding-with-cakephp/) tutaj: '$ this-> setDistanceAsVirtualField ($ lat, $ lng);' i będzie działało w tym polu. Możesz także użyć tego zachowania, aby dowiedzieć się, jak zbudować takie zapytanie. – mark