Advertisement
seriy-coder

Untitled

Dec 8th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.75 KB | None | 0 0
  1.     /*
  2.      * ф-ция выбирает ближайщие ZIP коды
  3.      */
  4.     private function _getZips($mainZip){
  5.         $ZIP = ORM::factory('Zip');
  6. //        var_dump('_getZips');
  7.         if(!isset($mainZip['longitude'])){
  8.             return [];
  9.         }
  10.         $distance = "(3958 * pi( )
  11.          * sqrt( ( {$mainZip['latitude']} - latitude )
  12.          * ( {$mainZip['latitude']} - latitude )
  13.          + cos( {$mainZip['latitude']} / 57.29578 )
  14.          * cos( latitude / 57.29578 ) * (
  15.          {$mainZip['longitude']} - longitude )
  16.          * ( {$mainZip['longitude']} - longitude ) ) / 180)";
  17.        
  18.         return $ZIP->select(array(DB::expr($distance), 'distance'))
  19.                 //->where('zip', '<>', $mainZip['zip'])
  20.                 ->order_by('distance')
  21.                 ->limit(100)
  22.                 ->find_all()
  23.                 ;//->as_array('id');
  24.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement