Ank*_*kit 7 mysql cakephp findall latitude-longitude
我必须从表中获取具有纬度/经度值的所有数据.实际上我只需要距离源1000英里范围内的所有纬度/经度值,所以为此我使用了概念并且它正确地计算纬度/经度但是当我是创建查找查询以获取具有table.latitudes <= latitudes North和table.latitudes> = latitudes South的数据
同样对于经度.
我已经制作了这些计算代码并查找了查询
$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));
Run Code Online (Sandbox Code Playgroud)
我已经检查了计算值($ latN,$ lonE)给出的结果,但发现所有查询都不起作用.
我帮我错了.
这可能会成功
$data = $this->ModelName->find('all', array('conditions' => array('ModelName.DbColumn >=' => 10)));
$data = $this->ModelName->find('all', array('conditions' => array('ModelName.DbColumn <=' => 10)));
$data = $this->ModelName->find('all', array('conditions' => array('ModelName.DbColumn >=' => 10,'ModelName.DbColumn <=' => 20)));
Run Code Online (Sandbox Code Playgroud)