2017-01-18 7 views
-1
私は2点間の距離を計算するために、このツールを使用

Laravelの半正矢計算

$location = new CnpPoi(28.535153, -81.383219); 
$destination = new CnpPoi(42.594018, -88.433886) 
$location->getDistanceInMilesTo($destination); 
$location->getDistanceInMetersTo($destination); 

が既にトラフのURLに彼の$緯度に合格した、与えられた点からの距離が注文したストアを取得するには、クエリ内で使用する必要がありますe $ long。 クエリ内でこの関数をどのように使用できますか?

答えて

0
public function getStoresNear($latitude, $lngitude){ 

    $stores = Store::select('stores.*') 
     ->selectRaw('(6371 * acos(cos(radians(?)) * 
          cos(radians(store_lat)) 
          * cos(radians(store_long) - radians(?) 
          ) + sin(radians(?)) * 
          sin(radians(store_lat))) 
         ) AS distance', [$latitude, $longitude, $latitude]) 
     ->orderBy('distance', 'desc') 
     ->get(); 

    return $stores; 
} 
+0

構文エラー1064 SQL構文にエラーがあります。 3番目の行(SQL: 'tb_users'を選択します。*、(6371 * acos())には、MariaDBサーバーに対応するマニュアル(ラジアン(?) )+ sin(ラジアン(?))* ' COS(ラジアン(41.9242814))* のcos(ラジアン(LAT)) * COS(ラジアン(ロング) - ラジアン(12.4923974) )+罪(ラジアン(41.9242814))* 罪(ラジアン(LAT))) )表示するには/ home/gethelpme/public_html/local/local_html/local/lib/resources/views/user/risultati.blade.php) – rubenSousa

+0

ああ、申し訳ありません、この答えはMariaDBではなくmysqlを対象としていました。あなたの質問にmariaDbタグを投稿してください – Paras